我试图在“变体”部分中调用“产品”模型中的变量。我可以使用以下方法调用'variant'中的现有变量:
<%= f.object.product_id %>
但我不能让这个工作:
<%= f.object.product.id %>
我可以这样做:
<%= f.object.product %>
但它返回#<Product:0x007fee2c9a8ec8>
,我不知道该怎么做!
以下是对情况的更详细概述:
我有'store'模型has_many'产品'。每个'产品'都有很多'变种'。变体是嵌套的。这是'/store/show.html.erb'文件:
<% @store.products.each do |product| %>
<tr>
<td>
<%= form_for(product) do |f| %>
<%= f.fields_for :variants do |builder| %>
<%= render 'variant_fields', f: builder %>
<% end %>
</td>
</tr>
<% end %>
这是'/ store / _variant_fields'部分:
<fieldset>
</table>
<tbody>
<tr>
<td><%= f.label :variant_name %><%= f.text_field :variant_name %></td>
</tr>
</tbody>
</table>
</fieldset>
答案 0 :(得分:0)
最简单的解决方案是将产品传递给您的部分:
<% render 'variant_fields', f: builder, product: f.object %>
在你的部分:
<fieldset>
</table>
<tbody>
<tr>
<td><%= f.label :variant_name %><%= f.text_field :variant_name %><%= product.inspect %></td>
</tr>
</tbody>
</table>
</fieldset>
查看product.inspect显示的内容。