0

我已经设置了模型生产者和产品。当我想创建一个新产品时,我可以在表单中从列表中选择生产者。这是代码:

<%= 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

我希望有人能帮忙!

4

1 回答 1

1

问题是在您的控制器中您引用了 params[:product],但在您看来,您使用的是“生产者”。将 select("producer".. 更改为 select("product" ,它将正常工作。

def create
   @product = Product.new(params[:product])
end

<%= select("producer", "producer_id", Producer.all.collect {|t| [ t.name, t.id ] }, {:prompt => 'Select producer'})%>  
于 2013-02-12T12:49:14.320 回答