【问题标题】:Multiple models, one form in rails. Want to create parent while creating the nested model object in a form多种型号,一种形式的导轨。想要在表单中创建嵌套模型对象时创建父级
【发布时间】: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


    【解决方案1】:

    accepts_nested_attributes_for

    仅适用于一对一和一对多关系,您的主要模型是主要父级.. 您将在产品和/或商店的用户模型中使用它。但是,如果商店不存在,您似乎想在他们输入产品时创建一个新商店?

    由于您的商店似乎只是一个或两个字段,我将使用它的字段将商店添加到控制器中..

    【讨论】:

      猜你喜欢
      • 2021-12-26
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多