如何在Rails 3中用Draper装饰嵌套属性(关联)?

set*_*err 11 ruby-on-rails nested-attributes draper

我的环境:

我正在使用嵌套资源,并且无法确定在何处声明装饰器.

#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
Run Code Online (Sandbox Code Playgroud)

我尝试更换items,ItemDecorator但没有用.我应该把它放在哪里?

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

Rob*_*bin 11

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

所以添加到您的UserDecorator:

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

  [..]
end

class ItemDecorator < Draper::Base
  decorates :item

  [..]
end
Run Code Online (Sandbox Code Playgroud)

看看来源.