2

我有几个回调记录创建/更新活动:

class Projelement
  ..
  after_create   { |p| p.log_projelement_activity "created" }
  after_update   { |p| p.log_projelement_activity "edited"  }

我需要扩充设计以在创建/更新时传递current_user(设计)log_projelement_activity来记录用户。

我试图current_user通过虚拟属性将控制器传递给模型和回调。但这行不通。

编码:

class Projelement
  attr_accessor :modifying_user

  after_create   { |p| p.log_projelement_activity "created", modifying_user }
  after_update   { |p| p.log_projelement_activity "edited",  modifying_user }

  def log_projelement_activity(op_type, user)
    @a = Activity.new
    @a.user = user
  end
end


class MilestoneController
  ..
  def create
    @milestone = Milestone.new(params[:milestone])
    @milestone.modifying_user = current_user
  end
end

每个创建/更新Activity都有预期值,除了user字段是nil.

我错过了什么?

4

1 回答 1

1

您可以使用userstamp。我认为这个宝石完全符合您的需要;)我将它与设计一起使用,它......完美地工作!

于 2012-04-02T16:26:03.397 回答