11

我的环境:

我正在使用嵌套资源并且无法确定在哪里声明装饰器。

#app/controllers/users_controller.rb
def show
  @user = UserDecorator.find(params[:id])
  @items = @user.items
end

#app/controllers/items_controller.rb
def show
  @item = @user.items.find(params[:id])
end

我尝试替换itemsItemDecorator,但没有用。我应该把它放在哪里?

我知道 Draper 在表单中存在嵌套资源问题,但这不是表单!

4

1 回答 1

11

据我正确理解你的问题,你有一个模型user有很多items,但你items没有装饰?

所以添加到你的UserDecorator

class UserDecorator < Draper::Base
  decorates :user
  decorates_association :items #, :with => :item 

  [..]
end

class ItemDecorator < Draper::Base
  decorates :item

  [..]
end

看看源码

于 2012-06-07T20:10:47.820 回答