我想不出一个更好的方式来标题这个抱歉!
最终我有一个回调,99%的时间我只想在特定的属性列表发生变化时运行。但在一些情况下,我希望能够通过我的return unless previous_changes & watched_attributes
。
有没有办法模拟对特定属性的更改?以某种方式将model.attribute_changed?
设置为true?
我一直在使用model.touch
,但updated_at
是我故意忽略的专栏。
答案 0 :(得分:0)
是的,您可以使用以下命令
检查您的属性是否已更改@object.column_changed? #=> true
您可以使用更改的方法
获取更改的属性数组@object.changed #=> ['column_name']
答案 1 :(得分:0)
您可以尝试以下内容:
object.attribute_name_will_change!
object.changed << :attribute_name
puts object.attribute_name_changed?
puts object.changed?
结果输出是:
true
true
attribute_name将替换为您的属性名称。