4

Draper を使用して public_activity gem によって作成されたアクティビティのコレクションを装飾しようとしています。

ただし、PublicActivity::Activity は ActiveRecord から継承されていないようです (私はそれを想定していますか?) のでinclude Draper::Decoratable、モデルに追加する必要がありますが、PublicActivity モデルは正確にはどこにあるのでしょうか?

ところで、これは私が得ているエラーです:

Could not infer a decorator for PublicActivity::Activity.

4

2 に答える 2

3

さて、これはうまくいかないことがわかりました:

class StudentActivitiesController < ApplicationController
  def index
    @activities = PublicActivity::Activity.order("created_at desc").decorate
  end
end

これは、名前空間付きのクエリPublicActivity::Activtyが ActiveRecord から継承されていないためDraper::Decoratable、 が含まれていないためだと推測していますが、よくわかりません。私が間違っている場合は、私を修正してください。

ただし、Draper を使用すると、クエリと同様にオブジェクトを装飾できるため、これは機能します...

class StudentActivitiesController < ApplicationController
  def index
    @activities = PublicActivity::Activity.order("created_at desc")
    @activities = StudentActivitiesDecorator.decorate_collection(@activities)
  end
end

デコレータには次も含める必要がありますdecorates PublicActivity::Activity

于 2013-12-27T16:39:40.893 に答える