我正在尝试使用Draper来装饰由public_activity宝石创建的活动集合。
然而,看起来PublicActivity::Activity并不是从ActiveRecord继承的(我认为这是对的吗?)所以我需要将include Draper::Decoratable添加到模型中,但是PublicActivity模型到底在哪里呢?
顺便说一句,这就是我所犯的错误:
Could not infer a decorator for PublicActivity::Activity.
发布于 2013-12-27 16:39:40
事实证明,这是行不通的:
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。
发布于 2014-02-15 04:16:40
把activity_decorator.rb放进decorators/public_activity
# app/decorators/public_activity/activity_decorator.rb
class PublicActivity::ActivityDecorator < Draper::Decorator
endhttps://stackoverflow.com/questions/20803784
复制相似问题