6

当我使用 rabl 为标准 RESTful 控制器方法返回 JSON 时,我认为我有一个非常基本的情况......

首先假设我与父母和孩子有典型的一对多关系(假设客户和帐户):

class Customer < ActiveRecord::Base
  has_many :accounts
end

在我的客户控制器中,我有索引和编辑 - 索引我只想返回所有客户(没有帐户)并编辑我想返回特定客户及其所有帐户的位置。由于明显的性能(N + 1)原因,我不想使用索引返回帐户。

在我的 rabl 中,我有以下内容:

#index.rabl (for listing all customers)
collection :@customers
extends "customers/_customer"

#edit.rabl (for editing a single customer)
object :@customer
extends "customer/_customer"

我正在为索引和编辑重用 _customer.rabl。

#_customer.rabl
object :@customer
attributes :name, ......

if @include_accounts
  child :accounts do
    extends "accounts/_account"
  end
end

我在我的编辑(控制器)中设置了@include_accounts,而不是索引——但这不起作用——基本上这里的实例变量(@include_accounts)永远不会被传递下去。实现这个的正确模式是什么?

4

1 回答 1

3

尽管 rails-rabl gem 声称它更快,但我发现模板对于条件表达式并不灵活 - 请参阅 rabl-rails 自述文件:实例变量。

于 2013-03-30T17:52:24.247 回答