Draper gem 没有装饰关联模型

Draper gem not decorating associated model

我正在关注 Draper gem 文档,但相关模型未被修饰。这是我的顶级装饰器的片段:

module Admin
  class OrderDecorator < Draper::Decorator
    delegate_all
    decorates_finders
    decorates_association :line_item

    def amount
      model.amount.nil? ? 0 : model.amount
    end
  end
end

这是我的关联装饰器的一个片段:

module Admin
  class LineItemDecorator < Draper::Decorator
    delegate_all

    def options
      model.options.present? ? model.options.to_s : 'N/A'
    end
  end
end

控制器中调用装饰器的方法如下:

  def show
    @subject = Admin::OrderDecorator.find(params[:id])
  end

它在视图中的使用方式如下:

@subject.line_items.each do |li|
  = li.options

...等...

LineItemDecorator 上的选项方法只是被忽略了 - 如果它为 nil,则不显示任何内容,而不是 'N/A'。我已将 binding.pry 放入选项方法中,但它永远不会被调用。谁能看到我遗漏了什么?

在此先致谢。

我认为您需要使用复数 line_items 而不是单数 line_item 才能使其正常工作,因为您的协会就是这样命名的。

 decorates_association :line_items