选项葡萄代表

Options grape representer

我正在与 Representers 合作 rails API,使用以下 gems:Grape, Roar and Grape-Roar

现在,我尝试添加条件以根据我从 API 端点传递的条件在我的表示中包含(或不包含)某些属性,如 here 所述(注意可表示的 gem被咆哮使用gem)

我可能忽略了一些东西,但我不知道如何将选项传递给我的代表,所以我可以根据条件呈现属性

例如,在我调用的一个葡萄端点中:

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] 只是 nil

有人知道我做错了什么吗?

提前致谢!

我自己也遇到了这个问题,我想出的唯一解决方案是放弃漂亮的惯用语 present..., with:... 并手动 extend 我的 collection / 与代表一起记录,就像这样 (关于你的例子):

payment_object.extend(PaymentRepresenter).to_hash(include_orders: true)