【问题标题】:How to add a collection_select in a form within another form如何在另一个表单中的表单中添加 collection_select
【发布时间】:2014-07-03 09:12:18
【问题描述】:

我想从一个表单中添加一个collection_select,我想在另一个表单中。

我有一个产品模型,其中:

has_many :distribution_companies
has_many :distributors, :through => :distribution_companies, :source => :company

和公司模型,具有:

has_many :distribution_companies
has_many :distributed_products, :through => :distribution_companies, :source => :product

(distribution_companies 仅引用了提到的模型)

这是表格(不要注意缩进):

= form_for @product, html: { :multipart => true } do |f|
= f.label :name do
  Name
= f.text_field :name

/.../

= f.fields_for :distribution_companies do |pn|
= pn.collection_select :company_id, Company.all, :id, :name

= f.submit 'Create the product'

我需要为@product 添加选择公司并将其存储在distribution_companies 表中。我试过了(也用 pn.object.coll ...)。有什么想法吗?

【问题讨论】:

  • 您的Product 模型中可能缺少accepts_nested_attributes_for :distribution_companies
  • 你能把log 生成的submit 表单贴出来
  • 您尝试添加我建议的内容了吗?
  • 你能发布你的控制器吗,可能你在新方法中缺少@product.distribution_companies.build
  • @Pavan 如果我有任何代表点,你甚至会得到一个投票:)

标签: ruby-on-rails ruby forms


【解决方案1】:

正如我所说,您必须将 @product.distribution_companies.build 添加到我们控制器的 new 方法中。

def new
  @product = Product.new
  @product.distribution_companies.build
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-20
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 2016-11-03
    相关资源
    最近更新 更多