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_modeloder 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).