У меня есть этот хеш, который создается динамически:
additional_values = {"grouping_id"=>1}
Я хочу объединить его с этим объектом записи после создания с помощью first_or_create :
result = model.where(name: 'test').first_or_create do |record|
# I'm trying to merge any record attributes that exist in my hash:
record.attributes.merge(additional_values)
# This works, but it sucks:
# record.grouping_id = data['grouping_id'] if model.name == 'Grouping'
end
#Not working:
#result.attributes>>{"id"=>1, "name"=>"Test", "grouping_id"=>nil}
Я понимаю, что если запись уже существует (возвращается через 'first'), она не будет обновлена ... хотя это было бы хорошим вариантом, и любые рекомендации по этому поводу приветствуются, но таблица была просто удалена и воссоздана,так что проблема не в этом.
Чего мне не хватает?
Я также попытался использовать to_sym
, в результате чего:
additional_values = {:grouping_id=>1}
... на всякий случайбыла какая-то странность, о которой я не знал ... не имел значения