2011-03-15 21 views
18

Rails 3 kullanıyorum ve iki modele de sahip olduğum Ekipman Grubu ve Rezervasyon. Ancak, ben ekipman grupları için yol oluşturulması istemiyoruzYuvalı yolları kullanma Ana kaynağa erişim izni vermeden raylar 3

/equipment_groups/:equipment_group_id/reservations/:id 

: Ben gibi URL'ler ile erişebilirsiniz böylece rezervasyonları ekipman gruplarının iç içe bir kaynak olmak istiyorum. Ben aşağıda aracılığıyla bunu başarabilirsiniz, ancak kesmek gibi görünüyor:

resources :equipment_groups, :only => [] do 
    resources :reservations 
end 

Bunu yapmak için daha iyi bir yolu var mı? Dokümanlarda kolayca bir cevap bulamıyorum.

cevap

1

Bunu yapmanın birkaç yolunu düşünebilirim. Bir yol yukarıda yaptığınız şeydir.

scope "/equipment_groups" do 
    resources :reservations 
end 

scope blok içinde her rotaya "/ equipment_groups" ekler: Eğer ekipman grupları denetleyicisi veya eylemlerin herhangi maruz gerek var gibi şu gayet yapmalıyım böylece Ancak, öyle görünüyor ki, . Bu aslında yuvalanmış bir rota "sahte" olacaktır.

+2

"Kaynaklar" yerine "kapsamı" kullanarak, url nesli sihrini kaybedersiniz. Örneğin, 'equipment_group_reservation_path (@equipment_group, @reservation)' çalışmaz. Sorunun kendisinde önerilen çözümü tercih ediyorum ve bunu bir hack olarak görmüyorum. –

+0

Bu işe yaramayacak! Bu yaklaşımla benzer, ancak ebeveyn kimliği olmayan ve rota oluşturmak için herhangi bir yardımcısı olmayan bir rotanız olacaktır. – kaleb4eg

5

Yaklaşımınız - bu standart bir yaklaşımdır, daha iyi bir şey yoktur.