轨道4 - 简单的形式,茧宝石嵌套的领域 - 错误信息

问题描述:

林试图与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

很难说出你没有任何例子如何使用这些嵌套窗体,但让我们假设。

在关联中使用默认验证器时,应始终突出显示带有错误的元素,如果您使用的是自定义验证器,请确保将错误添加到正确的关联中,否则在窗体中将不会显示任何内容。

看起来您的嵌套表单不确定它们与哪些关联。您应该在输入字段中嵌套您的按钮。

<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>