0

我试图在“变体”部分中调用“产品”模型中的变量。我可以使用以下方法从“变体”中调用现有变量:

 <%= f.object.product_id %>

但我不能让它工作:

<%= f.object.product.id %>

我可以做这个:

<%= f.object.product %>

但是它回来了#<Product:0x007fee2c9a8ec8>,我不知道该怎么办!

以下是对情况的更详细概述:

我有具有许多“产品”的“商店”模型。每个“产品”都有_许多“变体”。变体是嵌套的。这是“/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>
4

1 回答 1

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 向您展示了什么。

于 2013-06-21T17:19:02.557 回答