0

何が欠けているのかわかりません。私はネストされたアイテムを持って注文します。これらのアイテムにはそれぞれ種類があります。各アイテムのkind_idパラメータを操作したいのですが、「f [:kind_id]」は常に0を返します。

@order.items.each do |f|
  f[:kind_id] =  Kind.find_by_name(f[:kind_id]).id
end

私が得るパラメータは

{"authenticity_token"=>"7wz7ARjwcVvCR/bpp/T04JQIQwHsMKDflF1eMCL8PTU=",
 "order"=>{"items_attributes"=>{"1271160144889"=>{"price"=>"2",
 "amount"=>"2",
 "text"=>"2",
 "kind_id"=>"fds",
 "_destroy"=>""}},
 "total_price"=>"4"}}

上記のパラメータはもちろんテストデータです:)

4

1 に答える 1

1

:kind_idは整数列であるため、ActiveRecordは自動的にそれを整数として解釈します( "fds".to_i #=> 0)。アイテムモデルに追加attr_accessor :kind_nameし、フォームフィールドをに切り替える必要がありkind_nameます。その後、あなたはすることができます

@order.items.each do |f|
  f.kind = Kind.find_by_name(f.kind_name)
end
于 2010-04-13T15:35:50.550 に答える