我有兩個模型 - Product
和ProductCategory
。 Product
屬於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
標籤。
你應該使用'nested_form'創建產品屬於產品分類。欲瞭解更多詳情,請訪問https://github.com/ryanb/nested_form –
@Udaykumardas我已經看過了一個文檔,事情是我需要一些相反的東西 - 我有一個'Product'屬於一個'ProductCategory' – AlexNikolaev94