Как динамически обновлять поля Activerrecord?

#ruby #activerecord #dynamic

#ruby #activerecord #динамический

Вопрос:

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

Лучшее решение, которое я мог придумать, это:

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

Есть ли какой-либо другой метод?

Ответ №1:

Без сохранения, атрибуты=:

 model.attributes = fields
  

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

 model.update_attributes(fields)
  

Ответ №2:

 fields.each do |key,val|
  model.update_attribute key, val
end
  

или

 model.update_attributes fields