2016-11-04 10 views
0

私はProductProductCategoryという2つのモデルを持っています。 ProductProductCategoryに属し、商品カテゴリには多くの商品も含まれています。今、新しいProductを作成するための選択タグを作成しようとしています。ここでカテゴリを選択し、この新しい製品をそのカテゴリに属する​​ように設定します。私のコントローラでは、私はselectタグに別のモデルが属するモデルを入れよう

def create 
    @product = Product.new(product_params) 
    @product.save 
    redirect_to products_path 
end 

private 

def product_params 
    params.require(:product).permit(:name, :description, :price, :product_category_id) 
end 

を持っており、私の見解で、私はこのような何か実行しようとしました:

<%= form_for @product do |f| %> 
    <%= f.collection_select :product_category_ids, ProductCategory.all, :id, :name, 
                  {multiple: true} %> 
<% end %> 

をしかし、私は私が作る必要がありますどのように次のエラーに

undefined method `product_category_ids' for #<Product:0x007f4982afa758> 

を持っていますこの選択タグは機能しますか?

は、私はまた、このような方法で行うことを試みた

を追加しました:

<%= f.select :product_category_id, ProductCategory.all.collect { |c| [c.name, c.id] }, include_blank: true %> 

しかし、それだけでemptry optionタグを私に戻りました。

+0

の列がproductCategoryに属しているではありません。詳細については、https://github.com/ryanb/nested_form –

+0

をご覧ください。@Udaykumardasドキュメントを見てきましたが、逆に何かが必要なことがあります。私は 'ProductCategory'に属する' Product'を持っています。 – AlexNikolaev94

答えて

1

ただ、これを試してみてください:

product_category_idsあなたは、製品を作成するために `nested_form`を使用する必要がありますproductモデル

<%= form_for @product do |f| %> 
    <%= f.collection_select :product_category_id, ProductCategory.all, :id, :name, 
                  {multiple: true} %> 
<% end %> 
+0

残念ながらそれは動作しません:( – AlexNikolaev94

+0

エラーとは何ですか? –

+0

私のサーバーのログには、 "' – AlexNikolaev94

関連する問題