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)が渡されることはありません。これを実装するための正しいパターンは何ですか?