Ruby on rails 3 如何访问嵌套rails表单的一部分中的属性?

Ruby on rails 3 如何访问嵌套rails表单的一部分中的属性?,ruby-on-rails-3,forms,nested-forms,partial,Ruby On Rails 3,Forms,Nested Forms,Partial,我想使用内部对象中的布尔属性is_white在部分内部对象表单字段中的html代码之间切换。这是我的尝试 <%= form_for @outer_object do |f| %> <%= f.fields_for :inner_object do |builder| %> <%= render :partial => "inner_object_form_fields", :locals => { :f => builder } %&

我想使用内部对象中的布尔属性is_white在部分内部对象表单字段中的html代码之间切换。这是我的尝试

<%= form_for @outer_object do |f| %>
  <%= f.fields_for :inner_object do |builder| %>
    <%= render :partial => "inner_object_form_fields", :locals =>  { :f => builder } %>
  <% end %>
<% end %>
这是InnerObjects的迁移文件

我找到了一个答案,但无法为我找到答案。 问题是:如何访问attribute is_white?我的示例不起作用。

是因为f.Is\u white基于部分中的空白对象吗?试一试

<%= form_for @outer_object do |f| %>
 <%= f.fields_for f.inner_object do |builder| %>
   <%= render :partial => "inner_object_form_fields", :locals =>  { :f => builder } %>
 <% end %>
<% end %>
这样,它将引用附着的对象和您创建的任何状态

试试看

<% if f.object.is_white == true %>

似乎记得你可以通过这种方式访问对象,但不是100%确定

更进一步的一步就是这样做:

 <%= f.fields_for f.inner_object do |builder| %>
   <%= render :partial => "inner_object_form_fields", :locals =>  { :f => builder, :inner_object => builder.object } %>
 <% end %>
那你就可以做了

<% if inner_object.is_white == true %>

这样,您的部分代码看起来更干净。

对不起,Anthony。这对我不起作用。我编辑我的帖子以获得许可。
 <%= f.fields_for f.inner_object do |builder| %>
   <%= render :partial => "inner_object_form_fields", :locals =>  { :f => builder, :inner_object => builder.object } %>
 <% end %>
<% if inner_object.is_white == true %>