В моем routes.rb есть следующее:
resources :message_threads
Когда я звоню:
message_threads_path(1)
Я получил:
/message_threads.1
Почему это? Другие мои ресурсы работают нормально. Я не правильно использую множественное число, что ли?
ruby-on-rails
ruby-on-rails-3
Ghempton
источник
источник
resources :my_model
илиresources :my_models
? (Вам нужно использовать множественное число в файле маршрутов.)Иногда это также происходит, когда вы не предоставляете параметр: as в своем маршруте:
delete "delete/:id" => "home#delete"
Изменился на:
delete "delete/:id" => "home#delete", as: :delete
(не обращайте внимания на странный пример, мы только что столкнулись с этим для внутреннего приложения, которое мы создаем)
источник
match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get]
моя разметка представления:<%= link_to "Show Details", xyz_show_path(@project) %>
продолжалось создание:http://localhost:3000/xyz/show.1
Изменение файла маршрутов на:match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get], :as => "show"
разрешено:<%= link_to "Show Details", show_path(@project) %>
для работы.Другие люди, которые приземляются здесь, могут оказаться в такой ситуации:
Если у вас есть единственный ресурс, объявленный в вашем
routes.rb
:resource :map
Вам не нужно передавать объект
map_path
. Попытка позвонитьmap_path(map)
приведет к аналогичному поведению (например, URL-адресmap.12
).источник