2013-05-28 26 views
30

Wygenerowałem nowy projekt szynowy 4 (rc1) przy użyciu rails new i wygenerowałem rusztowanie przy użyciu rails g scaffold.Dlaczego szkielet Rails 4 tworzy pliki json.jbuilder?

Zgodnie z oczekiwaniami utworzył migrację, kontroler i wszystkie wymagane pliki widoku.

Utworzono także show.json.jbuilder i index.json.jbuilder.

Zakładam, że ma to pomóc pokoleniu jsonów z modeli. Kontroler również zawiera inwokacje format.json.

Pytanie: dlaczego wymaga json i która część wygenerowanej aplikacji używa json? Nie wygląda (dla mnie) widoki używają json do renderowania czegokolwiek, wydaje się, że są renderowane po stronie serwera (zmienne @model są używane w widokach, aby uzyskać zawartość).

Prowadnice krawędziowe (http://edgeguides.rubyonrails.org/) nie wspominają o jbuilderze i dlaczego jest on potrzebny.

Z góry dziękuję! Proszę dać mi znać, jeśli mogę wyjaśnić pytanie.

Odpowiedz

33

Aby odpowiedzieć „dlaczego” część:

Znaczenie rusztowania w Rails został nieco przesunięty w ciągu roku . Nie ma już potrzeby generowania potrzebnego kodu, który nie mógłby być łatwo wyodrębniony. Obecnie jest to głównie narzędzie edukacyjne, które zapewnia nieco dynamiczny przykład i pokazuje najlepsze praktyki. (To jest również powód, dlaczego są one posypane uwag sporne przydatności)

Innymi słowy wygenerowane pliki mają powiedzieć:

Jeśli masz zamiar użyć szyny, tutaj jest dobrym sposobem, w jaki mogłaś to zrobić.

lub w szczególnym przypadku:

Jeśli masz zamiar użyć JBuilder, tutaj jest dobrym sposobem, aby wygenerować JSON.

Są to , a nie przeznaczone do stwierdzenia: "Tak należy to zrobić."lub" Musisz zachować wszystkie wygenerowane rzeczy, ponieważ jest to konieczne. "

+0

Metoda 'GET' w formacie JSON (generowana domyślnie na szkielecie Rails) nie jest dobrą praktyką z powodu przechwycenia JSON. – konyak

10

Jbuilder Klejnot domyślnie włączony do RoR 4. Możesz przeczytać o tym na swojej stronie. Jest o tym obsada: Railscasts #320.

+7

thx, ale to nie odpowiada na moje pytanie – vrepsys

+0

Thx do tego. Używam RABL i nie generowania JSON z plików .rabl.Nie zdawałem sobie sprawy, jBurter był w drodze.Komentarował to i wszystko działało idealnie –

14

Rails 4 Generator rusztowania tworzy pliki jbuilder, ponieważ klejnot "Jbuilder" znajduje się w Gemfile. Jeśli usuniesz to ze swojej Gemfile, ta funkcjonalność zostanie zatrzymana.

16

Jak już wcześniej wspomniano, Railsy 4 wydają się generować pliki jako sposób na uzyskanie szablonu odpowiadającego na zapytanie JSON. Powiedzmy, że masz "skonfigurowany" model Car, to odpowie stroną HTML i widokiem szczegółów samochodu (id 1), jeśli przejdziesz /car/1.

Następnie, jeśli przejdziesz do /car/1.json, wyświetli się plik show.json.jbuilder. Istnieje również wydaje się być pewnego rodzaju automatycznego mechanizmu jako metoda show jest pusty, gdy rusztowanie:

def show 
end 
+4

w górnej części kontrolera jest 'be fore_action: set_modelname' który wywołuje metodę prywatną 'def set_activity @modelname = Modelname.find (params [: id]) end' – Anchor

+1

' A jeśli pójdziesz do /car/1.json, to odda plik show.json.jbuilder' ładnie powiedział: – Aleks

0

Współcześnie popularne są ramy kątowe lub podobne lub jeśli piszesz API dla aplikacji mobilnej.Ten widok konstruktora JSON może być użyty. nie używać widoków Railsów Dla wszystkich pozostałych JSON API stał się standardowym formatem.Jest bardzo przydatny, aby JSON widoku HTML był automatycznie tworzony przez szafy szynowe

Powiązane problemy