在rabl中使用装饰器

问题描述 投票:3回答:1

有谁知道如何在rabl文件中使用装饰器?

collection @invitations
  child(:user)
   attributes ....

我希望能够这样做:

collection @invitations
  child(:user => user.decorate)
   attributes ....

这很好用

object false
child UserDecorator.decorate(current_user)

我无法找出问题的正确语法。

ruby-on-rails rabl
1个回答
0
投票

我想你几乎得到了正确的答案。我相信你需要切换订单。

child(user.decorate => :user)

rabl's documentation中,您可以从任意数据源添加子节点。像这样:

child @posts => :foobar do
  attributes :id, :title
end

另一种方法是在装饰邀请时装饰用户关联。如果你正在使用draper gem,你可以这样做:

class InvitationDecorator < Draper::Decorator
  decorates_association :user
end
© www.soinside.com 2019 - 2024. All rights reserved.