2013-08-26 35 views
5

İşte benim yolları İşte Neden Raylar sadece benim yollarının bazı isim geliyor?

a_b GET /a/b(.:format)   a#b 
    GET /a/z/:something(.:format) a#z 

Vay berbat rake routes

çıkışı var

Dumb::Application.routes.draw do 

    # an auto-named route 
    get '/a/b',   to: 'a#b' 

    # apparently not auto-named??? 
    get '/a/z/:something', to: 'a#z' 

end 

dosyası var! Tutarlılık uğruna azından. Ben gösterecektir

get '/a/z/:something', to: 'a#z', as: "a_z" 

rake routes için a#z rotayı değiştirirseniz

a_b GET /a/b(.:format)   a#b 
a_z GET /a/z/:something(.:format) a#z 

Tamam bu iyi, ama bu can sıkıcı gibi rotayı adlandırmak zorunda.

bunun tek çözüm var mı?

+0

Ben yanlış olabilir, ama ben rota bu işe yeterli basit olduğunda yönlendirme tablosu sadece otomatik isimler atar düşünüyorum. Ekleme parametreler karıştırmayın olabilir. – tadman

cevap

2

Tahminimce, Rails rotayı anlayamadığı için rotanıza bir isim atayamaz. Genellikle, gibi rotanızı yazmak istiyorum olacaktır:

/a/:id/b/:id # instead of /a/b/:id which Rails does not understand. 

Raylar haritalar a id :id ile bir başka model örneği ile başka kontrolöre id :id ve b bir manken örneğiyle bir kontrolöre. Rails sözleşmesi açısından hiçbir şeye atıfta bulunmamaktadır.

a_b isimli GET /a/b adlı oyuncuya herhangi bir yorum girmemiştir, Rails sadece GET /a/z/:something numaralı telefonu arayabilir. Ne olurdu? a_z_something?

İlgili konular