Использовать декоратор в рабле

Кто-нибудь знает, как использовать декоратор в файле rabl?

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

Я хочу иметь возможность сделать это:

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

Это хорошо работает

object false
child UserDecorator.decorate(current_user)

Я не могу понять правильный синтаксис для моей проблемы.


person Thounder    schedule 26.04.2016    source источник


Ответы (1)


Думаю, у вас почти правильный ответ. Я считаю, что вам нужно изменить порядок.

child(user.decorate => :user)

В документации rabl вы можете добавлять дочерние узлы из произвольного источника данных. Так:

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

Другой подход заключается в том, чтобы украсить ассоциацию пользователей, когда вы украшаете свои приглашения. Если вы используете драгоценный камень драпировки, вы можете сделать что-то вроде этого:

class InvitationDecorator < Draper::Decorator
  decorates_association :user
end
person Derek Hopper    schedule 17.12.2017