在Ruby和Rails中成为新手,我不知道如何在我的标题中解释这一点,所以我会在这里做。我的目标是创建许多产品,每个产品只有一个整体位置。
我有一个Product
MVC,表格的快速丑陋草图将是这样的:
整体位置
form_for @product
<p>
<%= f.label :location %>:<br>
<%= f.text_field :location %>
</p>
产品一
<p>
<%= f.label :name %>:<br>
<%= f.text_field :name %>
<%= f.label :price %>:<br>
<%= f.text_field :price %>
</p>
产品二(相同)
<p>
<%= f.label :name %>:<br>
<%= f.text_field :name %>
<%= f.label :price %>:<br>
<%= f.text_field :price %>
</p>
产品三(相同)
<p>
<%= f.label :name %>:<br>
<%= f.text_field :name %>
<%= f.label :price %>:<br>
<%= f.text_field :price %>
</p>
<%= f.submit %>
<% end %>
你如何设置它以便这种关系可以发生,所以当用户在表单上创建3个产品时,他只有一个位置可以用于所有3个产品?
答案 0 :(得分:2)
这样:
class Location < AR::Base
has_many :products
end
class Product < AR::Base
belongs_to :location
end
然后,您将设置嵌套资源路由:
resources :locations do
resources :products
end
当您添加位置时,可以使用fields_for为其添加产品。
答案 1 :(得分:0)
在这种情况下是否需要使用nested_attributes_for ..