Варианты виноградного представительства

Я работаю над API рельсов с Представителями, используя следующие гемы: Grape, Roar и Grape-Roar

Теперь я пытаюсь добавить условия, чтобы включить (или не включать) определенные свойства в моем представителе, основываясь на условии, которое я передаю от своей конечной точки API, как описано здесь (обратите внимание, представимый драгоценный камень используется драгоценным камнем Roar)

Возможно, я что-то упускаю, но не могу понять, как передать параметры моему представителю, чтобы я мог представлять свойства на основе условия

Например, в одной из моих конечных точек я звоню:

present payment_object, with: PaymentRepresenter, include_orders: true

представить платежный объект с помощью PaymentRepresenter. Как вы видите, я хочу включить соответствующий платеж для оплаты, поэтому в моем представителе платежей я попытался сделать следующее:

property :order, extend: OrderRepresenter, if: lambda { 
    |args| puts args[:include_orders] #just puts for testing
}

однако args[:include_orders] просто равен нулю

Кто-нибудь знает, что я здесь делаю не так?

Заранее спасибо!

1 ответ

Решение

У меня была эта проблема сама, и единственное решение, которое я нашел, состояло в том, чтобы бросить хороший идиоматический present..., with:... и вручную extend моя коллекция / запись с представителем, вот так (относительно вашего примера):

payment_object.extend(PaymentRepresenter).to_hash(include_orders: true)
Другие вопросы по тегам