rubynuby
(rubynuby)
1
is it possible to modify magic field updated_at so it will update only
when ceratin columns are changed?
if not, I guess I have to do it on my own. In that case, how do I
tell if a field has changed in the, say, before_save callback?
I guess I can do something like this
def foo=(val)
if self.foo!=val
super
self.foo_changed = true
end
end
will that do?
Off the top of my head could you do something like this? Give it try.
def updated_at
Time.now if attributes_changed?
end
protected
def attributes_changed?
stale_record = self.reload
self.foo != stale_record.foo
end
Although that does force a read from the database.
HTH,
Nicholas
fxn
(Xavier Noria)
3
fxn
(Xavier Noria)
4
You can turn automatic timestamps off this way:
MyModel.record_timestamps = false
So in a callback you could check whether the columns have been changed with this plugin:
http://agilewebdevelopment.com/plugins/changed_attributes
and set the flag accordingly.
-- fxn