Dans mon routes.rb j'ai ce qui suit:
resources :message_threads
Quand j'appelle:
message_threads_path(1)
Je reçois:
/message_threads.1
Pourquoi est-ce? Mes autres ressources fonctionnent bien. Est-ce que je ne pluralise pas correctement ou quelque chose?
ruby-on-rails
ruby-on-rails-3
Ghempton
la source
la source
resources :my_model
ouresources :my_models
? (Vous devez mettre au pluriel dans le fichier de routes.)Parfois, c'est aussi lorsque vous ne fournissez pas un: comme paramètre dans votre itinéraire:
Changé en:
(ignorez l'exemple étrange, il s'est avéré que c'était quelque chose que nous venons de rencontrer pour une application interne que nous construisons)
la source
match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get]
mon balisage de vue: a<%= link_to "Show Details", xyz_show_path(@project) %>
continué à produire:http://localhost:3000/xyz/show.1
Changement du fichier de routes en:match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get], :as => "show"
autorisé:<%= link_to "Show Details", show_path(@project) %>
pour fonctionner.D'autres personnes qui atterrissent ici pourraient se trouver dans cette situation:
Si vous avez une ressource singulière déclarée dans votre
routes.rb
:Vous n'avez pas besoin de passer un objet à
map_path
. Tenter d'appelermap_path(map)
entraînera un comportement similaire (c'est-à-dire une URL semblablemap.12
).la source