In meiner route.rb habe ich folgendes:
resources :message_threads
Wenn ich anrufe:
message_threads_path(1)
Ich bekomme:
/message_threads.1
Warum ist das? Meine anderen Ressourcen funktionieren einwandfrei. Pluralisiere ich das nicht richtig oder so?
ruby-on-rails
ruby-on-rails-3
Ghempton
quelle
quelle
resources :my_model
oderresources :my_models
? (Sie müssen in der Routendatei pluralisieren.)Manchmal ist dies auch der Fall, wenn Sie in Ihrer Route keinen: as-Parameter angeben:
Gewechselt zu:
(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.)
quelle
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
: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 wiemap.12
).quelle