Em meu routes.rb eu tenho o seguinte:
resources :message_threads
Quando eu ligo:
message_threads_path(1)
Eu recebo:
/message_threads.1
Por que é isso? Meus outros recursos funcionam bem. Não estou pluralizando isso corretamente ou algo assim?
ruby-on-rails
ruby-on-rails-3
Ghempton
fonte
fonte
resources :my_model
ouresources :my_models
? (Você precisa pluralizar no arquivo de rotas.)Às vezes, isso também ocorre quando você não fornece um parâmetro: as em sua rota:
Alterado para:
(ignore o exemplo estranho, apenas aconteceu de ser algo que acabamos de encontrar para um aplicativo interno que estamos construindo)
fonte
match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get]
my view markup:<%= link_to "Show Details", xyz_show_path(@project) %>
continuava produzindo:http://localhost:3000/xyz/show.1
Alterando o arquivo de rotas para:match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get], :as => "show"
allowed:<%= link_to "Show Details", show_path(@project) %>
to work.Outras pessoas que pousam aqui podem estar nesta situação:
Se você tiver um recurso singular declarado em seu
routes.rb
:Você não precisa passar um objeto para
map_path
. Tentar chamarmap_path(map)
resultará em comportamento semelhante (ou seja, um URL semelhantemap.12
).fonte