Варианты виноградного представительства
Я работаю над 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)