假设我有一个模型Warehouse
、一个模型Car
和一个模型Dealer
。
模型Car
就像:
attr_accessible :make, :year
belongs_to :warehouse
belongs_to :dealer
控制器Cars
就像:
def create
car = current_dealer.find(params[:car][:warehouse_id]).cars.new(params[:car])
car.save!
end
的观点Cars#new
是这样的:
<%= semantic_form_for @car do |f| %>
<%= f.inputs do %>
<%= f.input :warehouse, :include_blank => false %>
<%= f.input :make %>
<%= f.input :year %>
<% end %>
<% end %>
经销商加车时可以选择仓库,上面的代码是防止批量分配的(也就是经销商将汽车添加到他们不拥有的仓库),但是它引发了一个异常说:warehouse_id
不能批量分配,那是因为它带有参数太像了params[:car][:warehouse_id]
。
如何在不手动分配属性的情况下摆脱该错误?无论如何,这是一个好方法吗?
PS我试过params[:car].delete(:warehouse_id)
,但这看起来不是正确的方法。