1

(public_activity gem から) アクティビティ モデルの属性を埋めようとしていparametersますが、成功しません。

class Project < ActiveRecord::Base
  include PublicActivity::Model

  tracked owner: ->(controller, model) { controller && controller.current_user },
          parameters: ->(controller, model){
            {foo: 'bar'}
          }
end

最初の問題は、プロジェクトを更新するときにパラメーター ハッシュが常に空になることです。2 つ目の問題は、->(controller, model)コントローラーとモデル クラスを受け取りますが、インスタンスを受け取りません。私の目的は、更新時に変更セットから 2 つのフィールドをパラメーター (ID と文字列) に入れることです。

どうすればこれを達成できますか?

4

4 に答える 4

8

少し遅い答えですが、PublicActivity でデフォルトのパラメーターハッシュを使用しようとしている他の人にはまだ役立つかもしれません。公式ドキュメントによると:

class Article < ActiveRecord::Base
      include PublicActivity::Model
      tracked :params => {
          :title => :title,
          :author_name => "Michael",
          :category_name => proc {|controller, model_instance| model_instance.category.name},
          :summary => proc {|controller, model_instance| truncate(model.text, :length => 30)}
      }
    end

詳細については、 http : //rubydoc.info/gems/public_activity/PublicActivity/Tracked/ClassMethodsを参照してください。

于 2014-03-17T14:29:18.917 に答える
0

モデル インスタンスに変数を設定するactivity_paramsと、アクティビティにも保存されます。あなたの場合、次のようになります。

class Project < ActiveRecord::Base
  include PublicActivity::Model
  tracked owner: ->(controller, model) { controller && controller.current_user }
end

project = Project.new
project.activity_params = {foo: 'bar'}

詳細については、http: //rubydoc.info/gems/public_activity/PublicActivity/Common#activity_params-instance_methodを参照してください。

于 2013-12-13T10:24:51.120 に答える