2016-04-03 79 views
0

林試圖與Rails的4軌道4 - 簡單的形式,繭寶石嵌套的領域 - 錯誤信息

我使用繭寶石嵌套域,這樣子集的形式嵌套的應用程序。

我也使用bootstrap。

我很掙扎,因爲如果出現錯誤,我的頁面會顯示:「請查看下面的問題:」消息,但沒有任何內容突出顯示,我無法找到錯誤的位置。

如何設置嵌套字段以顯示父頁面中的錯誤 - 甚至是嵌套的部分表單都可以。

我用我的主要形式,一些泛音,

當我嘗試編輯配置文件(主)對象,我可以在控制檯中看到,該更新似乎已經提交,但形式呈現再次用上述錯誤消息(但沒有什麼錯誤的任何識別是)

Started PATCH "/profiles/9" for ::1 at 2016-04-03 13:54:26 +1000 
    ActiveRecord::SchemaMigration Load (0.9ms) SELECT "schema_migrations".* FROM "schema_migrations" 
Processing by ProfilesController#update as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"39DIH7j7LeX7bnUnLirqKHpVPZ7vxmeKN+Q==", "profile"=>{"title"=>"", "occupation"=>"", "working_languages"=>"", "external_profile"=>"", "overview"=>"", "byline"=>"", "industry_ids"=>[""], "personality_attributes"=>{"average_day"=>"", "fantasy_project"=>"", "preferred_style"=>""}, "addresses_attributes"=>{"0"=>{"unit"=>"", "street_number"=>"1", "street"=>"Martin Street", "building"=>"", "city"=>"London", "region"=>"UK", "zip"=>"EC1A2PG", "country"=>"UK", "time_zone"=>"Eastern Time (US & Canada)", "main_address"=>"1", "project_offsite"=>"0", "_destroy"=>"false", "id"=>"1"}}}, "commit"=>"Submit", "id"=>"9"} 
    User Load (1.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT 1 [["id", 9]] 
    Profile Load (0.5ms) SELECT "profiles".* FROM "profiles" WHERE "profiles"."id" = $1 LIMIT 1 [["id", 9]] 
    User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 9]] 
    (0.3ms) BEGIN 
    Industry Load (0.8ms) SELECT "industries".* FROM "industries" INNER JOIN "industries_profiles" ON "industries"."id" = "industries_profiles"."industry_id" WHERE "industries_profiles"."profile_id" = $1 [["profile_id", 9]] 
    Personality Load (0.5ms) SELECT "personalities".* FROM "personalities" WHERE "personalities"."profile_id" = $1 LIMIT 1 [["profile_id", 9]] 
    SQL (0.6ms) UPDATE "personalities" SET "profile_id" = $1, "updated_at" = $2 WHERE "personalities"."id" = $3 [["profile_id", nil], ["updated_at", "2016-04-03 03:54:26.755593"], ["id", 10]] 
    Address Load (0.8ms) SELECT "addresses".* FROM "addresses" WHERE "addresses"."addressable_id" = $1 AND "addresses"."addressable_type" = $2 AND "addresses"."id" = 1 [["addressable_id", 9], ["addressable_type", "Profile"]] 
    Profile Load (0.5ms) SELECT "profiles".* FROM "profiles" WHERE "profiles"."id" = $1 LIMIT 1 [["id", 9]] 
    User Load (0.7ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 9]] 
    (0.3ms) ROLLBACK 
    Rendered users/_profileimgform.html.erb (6.2ms) 
    Industry Load (0.6ms) SELECT "industries".* FROM "industries" 
    Qualification Load (0.5ms) SELECT "qualifications".* FROM "qualifications" WHERE "qualifications"."profile_id" = $1 [["profile_id", 9]] 
    Rendered qualifications/_qualification_fields.html.erb (34.5ms) 
    Job Load (0.4ms) SELECT "jobs".* FROM "jobs" WHERE "jobs"."profile_id" = $1 [["profile_id", 9]] 
    Rendered jobs/_job_fields.html.erb (33.1ms) 
    Rendered personalities/_form.html.erb (6.6ms) 
    Vision Load (0.4ms) SELECT "visions".* FROM "visions" WHERE "visions"."profile_id" = $1 LIMIT 1 [["profile_id", 9]] 
    Rendered visions/_form.html.erb (8.5ms) 
    Address Load (0.3ms) SELECT "addresses".* FROM "addresses" WHERE "addresses"."addressable_id" = $1 AND "addresses"."addressable_type" = $2 [["addressable_id", 9], ["addressable_type", "Profile"]] 
    Rendered addresses/_address_fields.html.erb (262.2ms) 
    Rendered addresses/_address_fields.html.erb (53.3ms) 
    Rendered profiles/_form.html.erb (551.8ms) 
    Rendered profiles/edit.html.erb within layouts/profile (561.3ms) 
    Profile Load (0.4ms) SELECT "profiles".* FROM "profiles" WHERE "profiles"."user_id" = $1 LIMIT 1 [["user_id", 9]] 
    Rendered pages/_nav.html.erb (7.8ms) 
    Rendered pages/_footer.html.erb (1.5ms) 
Completed 200 OK in 1908ms (Views: 1646.7ms | ActiveRecord: 29.7ms) 

對於繭寶石,地址形式如下所示:

<div class="nested-fields"> 

    <div class="container-fluid"> 

       <div class="form-inputs"> 
        <div class="row"> 
         <div class="col-xs-3"> 
          <%= f.input :unit %> 
         </div> 
         <div class="col-xs-3 col-xs-offset-1"> 
          <%= f.input :street_number %> 
         </div> 
         <div class="col-xs-3 col-xs-offset-1"> 
          <%= f.input :street %> 
         </div> 
      </div> 

      <div class="row"> 
         <div class="col-xs-3"> 
          <%= f.input :building %> 
         </div> 
         <div class="col-xs-3 col-xs-offset-1"> 
          <%= f.input :city %> 
         </div> 
         <div class="col-xs-3 col-xs-offset-1"> 
          <%= f.input :region %> 
         </div> 
      </div> 

        <div class="row"> 
        <div class="col-xs-3"> 
         <%= f.input :zip %> 
        </div> 
        <div class="col-xs-3 col-xs-offset-1"> 

       <!--f.country_select(:country, {selected: @profile.country_name}, {class: "form-control"}) --> 
       <%= f.country_select :country, priority: [ "Australia", "New Zealand", "United Kingdom" ] %> 

        </div> 
      <div class="col-xs-3 col-xs-offset-1"> 
       <%= f.input :time_zone %> 
      </div> 


      </div> 

      <div class="row"> 
        <div class="col-xs-3"> 
         <%= f.input :main_address %> 
        </div> 
        <div class="col-xs-3 col-xs-offset-1"> 
         <%= f.input :project_offsite %> 
        </div> 
      </div> 

      <div class="row"> 
      <div class="col-md-6"> 
      </div> 

      </div> 
      </div> 

     <div class="row"> 
      <div class="col-md-6"> 
      <%= link_to_remove_association 'Remove this address', f %> 
      </div> 

     </div> 
    </div>  
</div> 

<div class = "debug" > <%= yield %> <%= debug(params) if Rails.env.development? %></div> 

然後在我的個人資料表格我添加:

 <%= link_to_add_association 'Add an address', f, :addresses, partial: 'addresses/address_fields' %> 

這是令人沮喪,因爲我無法找到什麼樣的錯誤可能是正在停止從處理更新任何指標。

+0

通常簡單形式顯示/突出顯示帶有錯誤的字段。您是否使用任何自定義驗證? – nathanvda

+0

沒有。我不是。我無法弄清楚它爲什麼只顯示'請查看下面的錯誤'的標題,但沒有確定錯誤是什麼 – Mel

+0

您可以在視圖中顯式列出所有驗證錯誤,但一定要重複嵌套屬性。你在視圖中有simple_fields_for語句來顯示所有現有的孩子?如果你展示了更多的代碼,這將會有所幫助:)(模型和視圖) – nathanvda

回答

0

很難說出你沒有任何例子如何使用這些嵌套窗體,但讓我們假設。

在關聯中使用默認驗證器時,應始終突出顯示帶有錯誤的元素,如果您使用的是自定義驗證器,請確保將錯誤添加到正確的關聯中,否則在窗體中將不會顯示任何內容。

1

看起來您的嵌套表單不確定它們與哪些關聯。您應該在輸入字段中嵌套您的按鈕。

<div class="row-fluid"> 
    <div class="col-md-12"> 
    <h3>Your Title</h3> 
    <div id="Your-form"> 
     <%= f.simple_fields_for :your_tables do |table| %> 
     <%= render 'table_fields', f: table %> 
     <% end %> 
     <div class="links"></div> 
     <%= link_to_add_association 'Add', f, :your_tables, class: 'btn btn-secondary add-button' %> 
    </div> 
    </div> 
</div> 

並且有一部分看起來像這樣。

<div class="form-inline clearfix"> 
    <div class="row"> 
    <div class="nested-fields"> 
     <%= f.input :table, placeholder: "Enter a Value", label: false, input_html: { class: "form-input form-control", style: 'width:80%;'} %> 
     <%= link_to_remove_association "Remove", f, class: "form-control btn btn-secondary", style: 'height:20%; display:inline; float:right;' %> 
    </div> 
    </div> 
</div>