2016-03-29 18 views
0

Uygulamam istendiği gibi çalışıyor, ancak iç içe geçmiş yollarla ilgili bir sorum var. Sadece olur alıyorum yolları ben öğreticiler veya diğer malzeme, onların 'öneki Fiil' izlediğinizdeRaylar iç içe geçmiş yönlendirme öneki fiil sorunu

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 

(yer kazanmak için kısaltılmış): Benim yolları dosyasında ben

resources :lists do 
    resources :items 
end 

var ve tırmığı çalıştırdığınızda var eylem _item (yani NEW_ITEM) ve formlar yerine sadece ne h

form_for @item 

olurdu bir şey eksik mi, yanlış bir şey mi yapıyordum diye merak ediyordum. Herhangi bir yardım veya bilgi takdir edilir.

+0

Sahip olduğunuz doğrudur. [İşte başka bir örnek] (http://stackoverflow.com/a/4611932/2272894) zaten sahip olduğunuz şeylerin üzerinden geçiyor. – MichaelBrawn

+0

Müthiş. Sadece bir açıklama istedim sanırım. Belki bazı kaynakları okurken çok fazla dikkat etmedim. Teşekkürler –

cevap

1

Öğreticinin yuvalanmış yollar kullanmadığı anlaşılıyor. senin yolları içinde,

form_for [@list, @item] 

kullanıldığında

Yani o farkındadır formu oluşturmak için bilir (kaynaklar RESTful yolları dayalı tanımlanır) listenin kaynakların içinde öğelerin kaynaklarını tanımlayan yuvalanmış bir rota ve '/ lists /: list_id/items /: item_id' gibi bir şeye uzanan bir rotaya sahip rotalar. POST'a giden rotayı bilmek için iki kimliğe ihtiyaç duyar.

öğretici yolları büyük olasılıkla

kaynaklardır yüzden iç içe geçmiş rota değil

form_for [@item] 

olsaydı: ürün ve listeler (yani NEW_ITEM => 'olmadan yolları üretecek/item/item_id ') Bu nedenle, rotalarınızın önek fiilinde listelenen listeler var.

Şu anda telefonumdayım. Bilgisayarıma ulaştığımda yazım hatalarını ve yapıyı biraz çözeceğim.

+0

Başlangıçta düşündüğüm buydu. Sadece yaptığım şeyin doğru olduğundan emin olmak istedim. Yardım için teşekkürler :) –

İlgili konular