如何在另一个表单中的表单中添加collection_select

时间:2014-07-03 09:12:19

标签: ruby-on-rails ruby forms

我想从我希望成为另一种形式的表单中添加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添加select公司并将其存储在distribution_companies表中。我试过abowe(也用pn.object.coll ...)。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

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