Rails Draper Gem 为嵌套模型提出未定义的方法

Rails Draper Gem raising undefined method for Nested Model

我的应用程序中有各种关联模型。我已经设置 Draper 来在父 class.

初始化时装饰关联

我有以下 classes:

Customer (has_many :accounts)
Account  (belongs_to :customer && has_many :facilities && has_one :contact)
Contact  (belongs_to :account)
Facility (belongs_to :account)

我启动一个装饰器如下:

@customer = Customer.find_by(:token => params[:token]).decorate

在我的account_decorator中添加了以下内容:

decorates_association :contact
decorates_association :facilities

...在我的客户装饰器中我有:

decorates_association :accounts

我遇到的问题是 facility_decorator 中定义的任何方法都显示未定义的方法异常。 contact_decorator 工作得很好。我已经确定我的AR映射是正确的,所以不会是那样。

有什么建议吗?

我通过eager_loading协会解决了这个问题。

@customer = Customer.eager_load({ :account => [:facilities]}).find_by(:token => params[:token]).decorate

这也缩短了整体查询时间,所以我很满意这个解决方案!