2016-11-04 108 views
0

我有兩個模型 - ProductProductCategoryProduct屬於ProductCategory,產品類別也可以有很多產品。現在我試圖在表單中創建一個選擇標籤來創建一個新的Product,我將選擇一個類別並將此新產品設置爲屬於該類別,但我很困惑如何做到這一點。在我的控制器我有用另一個模型所屬的模型填充選擇標籤

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> 

我應該怎麼做這個選擇標籤工作?

ADDED

我也試着這樣做:

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

但它返回我只是一個emptry option標籤。

+0

你應該使用'nested_form'創建產品屬於產品分類。欲瞭解更多詳情,請訪問https://github.com/ryanb/nested_form –

+0

@Udaykumardas我已經看過了一個文檔,事情是我需要一些相反的東西 - 我有一個'Product'屬於一個'ProductCategory' – AlexNikolaev94

回答

1

就試試這個:

product_category_ids不是product模型的列

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

不幸的是它不起作用:( – AlexNikolaev94

+0

什麼是錯誤? –

+0

沒有錯誤,它只是返回一個空的'select'標籤雖然在我的服務器日誌中,我可以看到一個請求'SELECT'product_categories「。* FROM」product_categories 「' – AlexNikolaev94

相關問題