(忽略奇怪的例子,只是碰巧是我们在构建内部应用程序时遇到的)
在我的路由。我有以下内容:
resources :message_threads
当我打电话时:
message_threads_path(1)
我:
/message_threads.1
为什么会这样?我的其他资源都很好。我把它复数化的不对吗?
是的,这是一个复数错误。
通过传递ID 1,我假设您希望显示单个记录。
所以你需要使用单数的'message_thread':
message_thread_path(1)
这将产生:
http://localhost:3000/message_threads/1
有时候,当你没有在路由中提供:as参数时,也会出现这种情况:
delete "delete/:id" => "home#delete"
更改为:
delete "delete/:id" => "home#delete", as: :delete
其他降落在这里的人可能会遇到这种情况:
如果您在routes.rb
中声明了单个资源:
resource :map
你不需要传递一个对象给map_path
。尝试调用map_path(map)
将导致类似的行为(即URL像map.12
)。