6

rablを使用して標準のRESTfulコントローラーメソッドのJSONを返す場合、非常に基本的なケースがあると思います...

最初に、私が親と子(顧客とアカウントとしましょう)と典型的な1対多の関係を持っているとしましょう:

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-railsreadme re:インスタンス変数を参照してください。

于 2013-03-30T17:52:24.247 に答える