6

myślę, że mam bardzo prosty przypadek, gdy używam Rabl JSON powrócić do standardowych metod relaksującego kontroler ...Warunkowo obejmować węzły potomne z Rabl

Najpierw powiedzmy mam typowy jeden do wielu relacji z rodzic i dziecko (powiedzmy klienta i kont):

class Customer < ActiveRecord::Base 
    has_many :accounts 
end 

W moim kontroler dla klienta mam indeksu i edycja - indeks gdzie Chcę tylko zwrócić wszystkie Klienci (BEZ kont) i edytować gdzie chcę zwracają konkretnego Klienta ze wszystkimi swoimi Kontami. W indeksie nie chcę zwracać kont z oczywistych powodów (N + 1).

W moim Rabl, mam następujące:

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

i

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

ja ponownym użyciem _customer.rabl zarówno dla indeksu i edycji.

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

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

ja ustawić @include_accounts w moim edycji (Controller), a nie indeks - ale to nie działa - zasadniczo instancji var tutaj (@include_accounts) nigdy nie zostanie przeniesiony na dół. Jaki jest prawidłowy wzór do wdrożenia tego?

+0

Którą wersję klejnotu używasz, 'rabl' lub' rabl-rails'? – drewinglis

+0

szyny-szyny 0.3.1. –

Odpowiedz

3

Mimo że gem z rails-rabl twierdzi, że jest szybszy, okazało się, że szablony nie są tak elastyczne dla wyrażeń warunkowych - patrz zmienne instancji rabl-rails readme re: instance.

+1

Dziękuję. Przestawiłem się na klejnot Rabl i wszystko działało jak czar. –

Powiązane problemy