在我的routes.rb中,我有以下内容:
resources :message_threads
我打电话的时候:
message_threads_path(1)
我明白了:
/message_threads.1
这是为什么?我的其他资源运作正常。我没有正确地复数这个或什么?
答案 0 :(得分:126)
是的,这是一个复数错误。
通过传递ID 1,我假设您希望显示单个记录。
所以你需要使用单数'message_thread':
message_thread_path(1)
将产生:
http://localhost:3000/message_threads/1
答案 1 :(得分:16)
有时这也是在你的路线中没有提供:作为参数的时候:
delete "delete/:id" => "home#delete"
更改为:
delete "delete/:id" => "home#delete", as: :delete
(忽略这个奇怪的例子,恰好是我们刚刚为我们正在构建的内部应用程序遇到的事情)
答案 2 :(得分:0)
在此居住的其他人可能处于这种情况:
如果您在routes.rb
中声明了单个资源:
resource :map
您不需要将对象传递给map_path
。尝试调用map_path(map)
会导致类似的行为(即类似map.12
的URL)。