【发布时间】:2011-06-06 05:46:27
【问题描述】:
我想在 Rails 中使用一种形式更新多个模型。我查看了 Railscasts #196 和许多嵌套模型示例,但无法让它们工作。不同的是我想在父模型中以子模型的形式创建记录。
我有这 3 个模型:
用户模型
has_many :产品
has_many :商店
产品型号
属于_to :user
归属地:商店
accept_nested_attributes_for :store
店铺模式
has_many: 产品
我有一个表单,用户可以在其中输入产品。我希望它有一个字段,他们也可以进入商店。此条目将在商店模型和产品模型中创建一条记录,其中 store_id 存储在商店模型中。
表格
<%= form_for @product, :html => { :multipart => true } do |f| %>
<%= f.text_field :product_name %>
<% f.fields_for :store do |store|%>
<%= store.text_area :store_name %>
<%end%>
<% end %>
控制器
@product = Product.new
@product.store.build
此代码导致以下错误:
nil:NilClass 的未定义方法“build”
我只想在他们进入产品时创建一个新的商店条目。 (如果它是重复条目,我不会允许,但我会在其他地方处理)。有什么建议吗?
【问题讨论】:
标签: ruby-on-rails-3 forms nested models