我可以使用ActiveRecord回调自动保存当前用户详细信息吗?

时间:2011-03-07 17:12:42

标签: ruby-on-rails activerecord callback

我想使用ActiveRecord的before_save回调来帮助我跟踪哪些用户编辑哪些记录。例如

class Foo < ActiveRecord::Base
  before_save
   self.edited_by = curent_user.username
  end
  ....
end

我遇到的问题是Foo不知道current_user是什么,因为它来自控制器助手。

我知道,我可以在控制器中完成所有操作。但如果可以的话,将它放入before_save回调中会很好。

1 个答案:

答案 0 :(得分:1)

最简单的方法是让你的模型更丰富:

class Article
  def edit!(editor)
    self.edited_by = editor.name
    self.save!
  end
end

无需使用回调。