我正在使用支持数组的PostgreSQL,这非常方便。有时我需要查看元素是否已更改。
我知道我们可以做到:
MyActiveRecordArray.changed?
=> true
但是有办法吗?
MyActiveRecordArray[0].changed?
感谢您的回答和帮助!
答案 0 :(得分:1)
尽管不能直接做到,但可以使用console.log(this.users.filter(function (val) {
return val.id_verified === 0
}).length)
方法:
changes
doc:https://api.rubyonrails.org/classes/ActiveModel/Dirty.html#method-i-changes
答案 1 :(得分:0)
这是我想出的解决方案,多亏您的回答
changes_index = []
old_array, new_array = model.changes['array_field']
new_array.each_with_index { |x, i| changes_index << i if x != old_array[i] }
答案 2 :(得分:0)
您可以使用attribute_name_changed?
方法直接询问ActiveRecord实例是否更改了特定属性。
根据您的情况:
MyModel.active_record_array_changed?
这将返回true
或false
,具体取决于特定属性是否已更改。