1

现在,我正在存储上次在字段中更新模型状态的用户以及上次在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

这显然不会扩展(并且不是一个很好的开始方法) - 这样做的正确方法是什么?

4

1 回答 1

0

您是否查看过acts_as_audited 插件

它的设置非常简单,并且会在相关表中记录触发记录更新/保存的人的时间戳、更改和用户 ID。检索最后一个用户更改状态非常简单。它也可以配置为仅在状态更改时触发。

但是,它的可扩展性可能不如您当前的处理方法,因为它会记录每次更改模型的状态。

于 2009-11-16T02:08:30.660 回答