Di routes.rb saya, saya memiliki yang berikut:
resources :message_threads
Ketika saya menelepon:
message_threads_path(1)
Saya mendapat:
/message_threads.1
Kenapa ini? Sumber daya saya yang lain berfungsi dengan baik. Apakah saya tidak mem-pluralisasi ini dengan benar atau sesuatu?
ruby-on-rails
ruby-on-rails-3
ghempton
sumber
sumber
resources :my_model
atauresources :my_models
? (Anda perlu membuat jamak di file routes.)Terkadang ini juga terjadi saat Anda tidak memberikan parameter: as di rute Anda:
delete "delete/:id" => "home#delete"
Diubah menjadi:
delete "delete/:id" => "home#delete", as: :delete
(abaikan contoh ganjil, kebetulan terjadi sesuatu yang baru saja kita temui untuk aplikasi internal yang sedang kita buat)
sumber
match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get]
markup tampilan saya:<%= link_to "Show Details", xyz_show_path(@project) %>
terus menghasilkan:http://localhost:3000/xyz/show.1
Mengubah file rute menjadi:match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get], :as => "show"
diizinkan:<%= link_to "Show Details", show_path(@project) %>
berfungsi.Orang lain yang mendarat di sini mungkin berada dalam situasi ini:
Jika Anda memiliki sumber daya tunggal yang dideklarasikan di
routes.rb
:resource :map
Anda tidak perlu mengirimkan objek ke
map_path
. Mencoba meneleponmap_path(map)
akan menghasilkan perilaku yang serupa (misalnya seperti URLmap.12
).sumber