2016-03-29 17 views
0

Meine App funktioniert wie vorgesehen, aber ich habe eine Frage in Bezug auf verschachtelte Routen. In meiner Routen-Datei habe ichRails verschachtelte Routing-Präfix Verb Problem

resources :lists do 
    resources :items 
end 

und wenn ich Rake laufen: Routen ich (verkürzt um Platz zu sparen)

list_items  GET /lists/:list_id/items(.:format)   items#index 
       POST /lists/:list_id/items(.:format)   items#create 
new_list_item GET /lists/:list_id/items/new(.:format)  items#new 
edit_list_item GET /lists/:list_id/items/:id/edit(.:format) items#edit 
list_item  GET /lists/:list_id/items/:id(.:format)  items#show 

Wenn ich Tutorien oder eine anderes Material folgen, ihr ‚Präfix Verb‘ würde nur haben Aktion _ITEM (dh NEW_ITEM) und die Formen nur

form_for @item 

statt, was ich h hätte ave

form_for [@list, @item] 

Ich fragte mich, ob ich etwas vermisste oder etwas falsch machte. Jede Hilfe oder Information wird geschätzt.

+0

Was Sie haben, ist korrekt. [Hier ist ein anderes Beispiel] (http://stackoverflow.com/a/4611932/2272894), das über das hinausgeht, was Sie bereits haben. – MichaelBrawn

+0

Ehrfürchtig. Ich wollte nur eine Klarstellung. Vielleicht habe ich beim Lesen einiger Ressourcen nicht viel Aufmerksamkeit geschenkt. Danke –

Antwort

1

Es klingt wie das Tutorial verschachtelte Routen verwendet. So in Ihren Routen definieren Sie die Ressourcen der Elemente innerhalb der Ressourcen-Liste (Ressourcen auf der Grundlage der RESTful Routen definiert sind)

wenn

form_for [@list, @item] 

verwendet wird, sie weiß, dass die Form zu erzeugen, sie erkennt, dass es ist eine verschachtelte Route und die Routen mit einer Route, die sich auf etwas wie '/ lists /: list_id/items /: item_id' erstreckt, benötigt zwei IDs, um zu wissen, zu welcher Route es gehen soll.

Wenn das Tutorial hat

form_for [@item] 

es ist nicht eine verschachtelte Route, so dass die Routen am ehesten

Ressourcen: Artikel und erzeugen würden Routen ohne die Listen (dh NEW_ITEM => ‚/ item/item_id ') Aus diesem Grund haben Ihre Routen Listen, die im Präfix Verb enthalten sind.

Ich bin gerade an meinem Telefon. Ich werde die Tippfehler und Struktur ein wenig beheben, wenn ich zu meinem Computer komme.

+0

Das ist, was ich anfangs dachte. Ich wollte nur sicherstellen, dass das, was ich gemacht habe, richtig war. Danke für die Hilfe :) –