现在,我正在state_last_updated_by_id
字段中存储上次更新模型状态的用户,并在state_updated_at
字段中存储上次更新状态的时间。然后我定义这样的方法:
def published_at
return unless state == 'published'
state_updated_at
end
def published_by
return unless state == 'published'
state_last_updated_by
end
def nominated_for_publishing_at
return unless state == 'under_review'
state_updated_at
end
def nominated_for_publishing_by
return unless state == 'under_review'
state_last_updated_by
end
这显然不会扩展(并且不是一个好的开始方法) - 这样做的正确方法是什么?
答案 0 :(得分:0)
你有没有看过acts_as_audited plugin?
设置非常简单,并且会记录触发相关表中记录更新/保存的人的时间戳,更改和用户ID。使检索最后一个用户改变状态非常简单。它也可以配置为仅在状态更改时触发。
然而,它的可扩展性可能低于您当前的处理方法,因为它会记录每次模型状态的变化。