我已经设置了Producer和Product模型。当我想创建一个新产品时,我可以从列表中选择生产者。这是代码:
<%= select("producer", "producer_id", Producer.all.collect {|t| [ t.name, t.id ] }, {:prompt => 'Select producer'})%>
它工作正常,但是当我想保存创建的产品时,它显示producer_id
不能为空,这是由我创建的验证引起的。
我已将列producer_id
设置为Product表,创建了关联,以及我被告知的所有内容。
这是我的代码:
产品控制器
def new
@product = Product.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @product }
end
def create
@product = Product.new(params[:product])
end
产品型号
belongs_to :producer
制作人模型
has_many :products
我希望有人可以提供帮助!
答案 0 :(得分:1)
问题是在你的控制器中引用了params [:product],但在你的视图中你使用了“producer”。更改选择(“生产者”..选择(“产品”,它将正常工作。
def create
@product = Product.new(params[:product])
end
<%= select("producer", "producer_id", Producer.all.collect {|t| [ t.name, t.id ] }, {:prompt => 'Select producer'})%>