ruby-on-rails - 有条件地包含带有 RABL 的子节点

标签 ruby-on-rails ruby-on-rails-3 one-to-many restful-architecture rabl

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

首先,假设我与 parent 和 child 之间存在典型的一对多关系(假设客户和帐户):

class Customer < ActiveRecord::Base
  has_many :accounts
end

在我的客户 Controller 中,我有索引和编辑 - 索引我只想返回所有客户(没有帐户)并编辑我想返回具有所有帐户的特定客户的位置。对于索引,我不想因为明显的性能 (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

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

最佳答案

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

关于ruby-on-rails - 有条件地包含带有 RABL 的子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15651121/

相关文章:

ios - 在 iOS 的 Core Data 中建模一对多关系

c# - Entity Framework : Why WillCascadeOnDelete() Method is ignored?

ruby-on-rails - 将 Mac Pro 中的操作系统更新为 mavericks 后无法创建 Rails 应用程序

css - 如何让rails加载多个css文件

Ruby On Rails 模型、 View 和 Controller 之间的关系

jquery - 为什么 'jQuery-Rails' 通常位于 Assets 组之外

java - 映射异常表示无法实例化 id 生成器。为什么会出现这个异常?

ruby-on-rails - 如何访问服务对象中的设备登录

mySQL root 密码无效

ruby-on-rails-3 - 如何在Tyre elasticsearch中动态增强相关性(从数据库获取增值)