我使用了draper并取得了一些成功。但目前我被卡住了。
我有两种模式:
# Foo.rb
class Foo < ActiveRecord::Base
has_many :bars
# Bar.rb
class Bar < ActiveRecord::Base
belongs_to :foo
def self.number_banned
where(:status => "banned").count
end
如果正常加载类,它将按预期工作:
f = Foo.find(1)
f.bars.number_banned # ex. 3
如果我使用Draper来装饰对象,它会返回一个未定义的“number_banned”方法:
f = Foo.find(1).decorate
f.bars.number_banned # Undefined method 'number_banned'
注意:
任何想法我做错了什么?
答案 0 :(得分:0)
感谢您的评论。我似乎找到了解决方案。
FooDecorates方法应该指向Bar的单个实例:
decorates_association :bar
而不是:
decorates_association :bars