У меня есть 2 модели, как описано ниже. Я хотел бы сделать так, чтобы при создании продукта пользователю приходилось выбирать из категорий, которые существуют в таблице категорий.
Таблица:
продукты: id, name
категории: идентификатор, имя
category_products: category_id, product_id
class Product
has_and_belongs_to_many :categories
accepts_nested_attributes_for :categories
end
class Category
has_and_belongs_to_many :products
end
class ProductsController < ApplicationController
def new
@product = Product.new
@product.categories.build
end
def create
@product = Product.new(params[:product])
if @product.save
redirect_to @product, :notice => "Successfully created product."
else
render :action => 'new'
end
end
end
* +1011 * Вид / произведения / new.haml
= form_for @product do |f|
= f.text_field :name
= f.fields_for :categories do |cat_form|
= cat_form.collection_select :id, Category.all, :id, :name, :prompt => true
Однако, это терпит неудачу и дает мне:
Не удалось найти категорию с идентификатором = 3 для продукта с идентификатором =
Я хотел бы просто иметь возможность назначить существующую категорию для продукта при создании. Есть ли простой способ сделать это?