在我的routes.rb中,我有以下内容:
resources :message_threads
当我打电话时:
message_threads_path(1)
我得到:
/message_threads.1
为什么是这样?我的其他资源工作正常。我不正确地将此复数吗?
Answers:
是的,这是一个多元错误。
通过传递ID 1,我假设您希望显示一条记录。
因此,您需要使用单数“ message_thread”:
message_thread_path(1)
这将产生:
http://localhost:3000/message_threads/1
resources :my_model
还是resources :my_models
?(您需要在路由文件中将其复数。)
有时也就是当您在路由中未提供:as参数时:
delete "delete/:id" => "home#delete"
变成:
delete "delete/:id" => "home#delete", as: :delete
(忽略奇怪的例子,碰巧是我们为我们正在构建的内部应用程序遇到的问题)
match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get]
我的视图标记: <%= link_to "Show Details", xyz_show_path(@project) %>
继续生成:http://localhost:3000/xyz/show.1
将路线文件更改为: match "/xyz/show/:project_id" => "xyz#show_project", :via => [:get], :as => "show"
允许: <%= link_to "Show Details", show_path(@project) %>
工作。