无法在Rails中保存关联的模型ID

时间:2013-02-12 11:58:52

标签: ruby-on-rails associations has-many belongs-to

我已经设置了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

我希望有人可以提供帮助!

1 个答案:

答案 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'})%>