Ruby on rails 为什么Rails只列出了我的一些路线?
这是我的路线文件Ruby on rails 为什么Rails只列出了我的一些路线?,ruby-on-rails,routes,Ruby On Rails,Routes,这是我的路线文件 Dumb::Application.routes.draw do # an auto-named route get '/a/b', to: 'a#b' # apparently not auto-named??? get '/a/z/:something', to: 'a#z' end 这里是rake路由的输出 a#b GET/a/b(:格式)a#b GET/a/z/:某物(:格式)a#z 哇,太糟糕了!至少为了一致性。如果我将
Dumb::Application.routes.draw do
# an auto-named route
get '/a/b', to: 'a#b'
# apparently not auto-named???
get '/a/z/:something', to: 'a#z'
end
这里是rake路由的输出
a#b GET/a/b(:格式)a#b
GET/a/z/:某物(:格式)a#z
哇,太糟糕了!至少为了一致性。如果我将a#z
路线更改为
get '/a/z/:something', to: 'a#z', as: "a_z"
rake routes
将显示
a#b GET/a/b(:格式)a#b
a#z GET/a/z/:某物(:格式)a#z
好的,那很好,但是这样命名路线很烦人
这是唯一的解决方案吗?我猜Rails无法为您的路线指定名称,因为它不理解它。通常,您会希望将您的路线写为:
/a/:id/b/:id # instead of /a/b/:id which Rails does not understand.
Rails将a
映射到具有id:id模型实例的控制器,并将b
映射到具有id:id模型实例的另一控制器
/a/b/:id
未提及Rails惯例方面的任何内容
获取GET/a/b
命名为a_b
只是Rails做出的猜测,但它无法解决GET/a/z/:某些东西。会是什么a_z_something
?我可能错了,但我认为路由表只会在路由足够简单时自动分配名称。添加参数可能会混淆它。