Учитывая, что у меня data_config
как столбец jsonb
Я хочу проверить значение параметра c key , если оно было изменено перед сохранением.
Тестовые данные:
data_config: {
"status"=>true,
"text"=>"sample"
}
Модель рельсов:
attr_json_config(default_container_attribute: :data_config)
attr_json :status, :boolean, default: true
before_save :check_config
def check_config
if self.status_changed? # => want to have something like this to check if value changed?
# ... do something
end
end
Это работает в моем случае, но я считаю, что есть лучший способ.
status_val = self.attr_json_changes.changes_to_save.try(:[], "status")
# above returns [true, false] (old & new value)
if status_val.try(:first) != status_val.try(:last)
...do something
end