路径助手使用点而不是斜线生成路径

时间:2011-04-15 08:21:19

标签: ruby-on-rails ruby-on-rails-3

在我的routes.rb中,我有以下内容:

resources :message_threads

我打电话的时候:

message_threads_path(1)

我明白了:

/message_threads.1

这是为什么?我的其他资源运作正常。我没有正确地复数这个或什么?

3 个答案:

答案 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)。