#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