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)
ましたが、これを行う正しい方法のようには見えません。