Yol yardımcıları, eğik çizgi yerine noktalı yollar oluşturur


91

Rotalarımda.rb şunlara sahibim:

resources :message_threads

Aradığımda:

message_threads_path(1)

Alırım:

/message_threads.1

Bu neden? Diğer kaynaklarım iyi çalışıyor. Bunu doğru bir şekilde çoğullaştırmıyor muyum?

Yanıtlar:


145

Evet, bu bir çoğullaştırma hatasıdır.

ID 1'i geçerek, tek bir kayıt görüntülemek istediğinizi varsayıyorum.

Bu yüzden tekil 'message_thread' kullanmanız gerekir:

message_thread_path(1)

Hangisi verecek:

http://localhost:3000/message_threads/1

3
Heh. Hepimizin başına gelir; sık sık. Muhtemelen bu hatayı son gördüğünüz zaman olmayacak!
Scott

Oluşturduğum adlandırılmış bir rota ile aynı hatayı alıyorum ve çoğullaştırmıyorum. Orada düzeltme ne olurdu?
kakubei

1
@kakubei, rotalar dosyanızı kontrol edin. Arıyor musun resources :my_modelyoksa resources :my_models? (Rotalar dosyasında çoğul hale
getirmeniz

Tüm rotalarım çoğul.
kakubei

1
Akşam 5 oldu, kafamı klavyeye vurmak üzereydim, işte buydu. Teşekkürler dostum.
Phantomwhale

19

Bazen bu, rotanızda bir: as parametresi sağlamadığınız zamandır:

delete "delete/:id" => "home#delete"

Şu şekilde değiştirildi:

delete "delete/:id" => "home#delete", as: :delete

(garip örneği görmezden gelin, sadece oluşturduğumuz dahili bir uygulama için karşılaştığımız bir şey oldu)


4
Bu benim için çalıştı. Belirtme : bana "_yol" u ekleyebileceğim ve Rails'in link_to'da ne istediğimi bilmesini sağlayacak bir ad verdi. Başlangıçta, rota match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get] dosyamda: görünüm işaretlemem: <%= link_to "Show Details", xyz_show_path(@project) %> üretmeye devam ettiğinde : http://localhost:3000/xyz/show.1 Rota dosyasını değiştirmek için: match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get], :as => "show" izin verildi: <%= link_to "Show Details", show_path(@project) %> çalışmak.
ayang

0

Buraya inen diğer insanlar bu durumda olabilir:

Tekil bir kaynağınız varsa routes.rb:

resource :map

Bir nesneyi iletmenize gerek yok map_path. Aramaya çalışmak map_path(map)benzer davranışla sonuçlanacaktır (yani bir URL gibi map.12).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.