The problem is that the updated_at field is useful for other functions
but the last_seen field being updated is causing the updated_at field
to update and records are being processed if they have been updated
since the system was last checked (I hope I explained that correctly).
Basically the records are being polled for changes based on the
updated_at time. The last_seen field is causing the records to appear
to be updated when they are not, at least not in any way that we are
Creating a ‘real_updated_at’ field would be confusing by itself and
require code changes to make sure that it always gets updated when
anything but the last_seen field is updated (not a big problem I know
but less than obvious to anyone reading the code).
Another alternative that I can see is a new table for last_seen that
has a strict one to one relationship with the master record. Which
normalisation would say should be part of the master record, just to
get round the updated_at field.
I suspect that raw SQL will be the way round this. I was just hoping
to make this transparent (you just know someone will see the raw SQL
and not read the comments and ‘improve’ the code).
this may help http://stackoverflow.com/questions/1386490/manually-set-updated-at-in-rails
or you can skip using raw sql and use AR’s update_column method