Antworten:
Ja, dies ist ein Pluralisierungsfehler.
Wenn Sie die ID 1 übergeben, gehe ich davon aus, dass Sie einen einzelnen Datensatz anzeigen möchten.
Sie müssen also den singulären 'message_thread' verwenden:
message_thread_path(1)
Welches ergibt:
http://localhost:3000/message_threads/1
resources :my_model
oder resources :my_models
? (Sie müssen in der Routendatei pluralisieren.)
Manchmal ist dies auch der Fall, wenn Sie in Ihrer Route keinen: as-Parameter angeben:
delete "delete/:id" => "home#delete"
Gewechselt zu:
delete "delete/:id" => "home#delete", as: :delete
(Ignorieren Sie das seltsame Beispiel, es ist zufällig etwas, auf das wir gerade für eine interne App gestoßen sind, die wir erstellen.)
match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get]
Mein Ansichts-Markup: <%= link_to "Show Details", xyz_show_path(@project) %>
Produzierte weiter: http://localhost:3000/xyz/show.1
Ändern der Routendatei in: match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get], :as => "show"
Erlaubt: Funktioniert <%= link_to "Show Details", show_path(@project) %>
.
Andere Leute, die hier landen, könnten in dieser Situation sein:
Wenn Sie eine einzelne Ressource in Ihrem routes.rb
:
resource :map
Sie müssen kein Objekt an übergeben map_path
. Der Versuch, einen Anruf zu tätigen, map_path(map)
führt zu einem ähnlichen Verhalten (dh einer URL wie map.12
).