Я пытаюсь манипулировать вложенным параметром перед сохранением модели, но мне что-то не хватает - PullRequest
0 голосов
/ 13 апреля 2010

Я не вижу, чего мне не хватает. У меня есть и заказ с вложенными предметами, каждый из этих предметов имеет вид. Я хочу манипулировать параметром 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"}}

Вышеуказанные параметры, конечно, тестовые данные:)

1 Ответ

1 голос
/ 13 апреля 2010

Поскольку :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
...