6

子节点,我想我有当我使用Rabl的返回JSON标准的RESTful控制器方法非常简单的情况下...有条件包括与Rabl的

首先,让我们说我有一个典型的与许多关系父母和孩子(假设客户和帐户):

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在我的编辑器(控制器),而不是指数 - 但这不起作用 - 实际上是实例VAR这里(@include_accounts)永远不会被流传下来。什么是正确的模式来实现这一点?

+0

哪些宝石的版本您使用的是'rabl'或'Rabl的-rails'? – drewinglis 2013-03-27 23:54:14

+0

拉格导轨0.3.1。 – 2013-03-30 16:09:04

回答

3

即使轨道,Rabl的宝石声称它是快,我发现模板不灵活的条件表达式 - 见Rabl的护栏自述重:实例变量。

+1

谢谢。我转向了拉布宝石,一切都像魅力一样。 – 2013-03-30 18:26:28