3

我正在与 Representers 一起使用 Rails API,使用以下 gem:GrapeRoarGrape-Roar

现在,我尝试根据我从 API 端点传递的条件添加条件以在我的表示器中包含(或不包含)某些属性,如此处所述请注意,可表示的 gem 由 Roar 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

有谁知道我在这里做错了什么?

提前致谢!

4

1 回答 1

4

我自己也遇到了这个问题,我想出的唯一解决方案是放弃漂亮的惯用语present..., with:...并使用代表手动extend收集/记录,如下所示(关于您的示例):

payment_object.extend(PaymentRepresenter).to_hash(include_orders: true)
于 2015-05-11T18:26:54.463 回答