Как динамически обновить поля Activerrecord? - PullRequest
0 голосов
/ 25 апреля 2011

Мне нужно обновить некоторые поля в модели activerecord. Но я получу модель и имена / значения полей только во время выполнения. Некоторые поля являются другими моделями, и ассоциации уже установлены.

Лучшее решение, которое я мог бы найти, это:

fields.each do |key,val|
  model.send :"#{key}, val
end

Есть ли другой метод?

Ответы [ 2 ]

2 голосов
/ 25 апреля 2011

Без сохранения, attribute = :

model.attributes = fields

С сохранением и проверкой update_attributes :

model.update_attributes(fields)
1 голос
/ 25 апреля 2011
fields.each do |key,val|
  model.update_attribute key, val
end

или

model.update_attributes fields
...