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であることを除いて、各作成/更新には期待値があります。usernil

私は何が欠けていますか?

4

1 に答える 1

1

userstampを使用できます。この宝石はあなたが必要としていることを正確に実行すると思います;)私はそれをdeviseで使用しました、そしてそれは...完璧に機能します!

于 2012-04-02T16:26:03.397 に答える