我希望创建一个到控制器的路由,但我想不要在URL中规定该控制器的名称。
所以网址就是这样的。
www.blabla.com/about_us.html
我不想要一个about_us控制器,而是想要一个MainController和一个about_us动作。
我已经从里到外读过路线,但没有一个实例表明如何做到这一点。
有谁知道如何将无控制器路由与特定控制器匹配?
答案 0 :(得分:1)
您可以在路线指南中看到类似内容的示例:
http://guides.rubyonrails.org/routing.html#naming-routes
get 'exit', to: 'sessions#destroy', as: :logout
您可以使用:
get 'about_us', to: 'main#about_us'
答案 1 :(得分:0)
您可以使用“路径”:选项
resources :main, path: "/", only: [] do
get :about_us
end
现在,主控制器中的所有操作都将直接访问,而无需url中的控制器名称 例如:localhost:3000 / about_us
答案 2 :(得分:0)
尝试:
resources :main,:path => '',:only => []
现在可以在URL中没有控制器名称main的情况下访问MainController的所有操作。
答案 3 :(得分:0)
匹配'about_us',:to => 'MainController#about_us'
答案 4 :(得分:-1)
我决定这个......
MainController.action_methods.each{ |a| a = a.to_s; match a => 'main#'+a}
无法访问私人操作,但所有其他操作均无法访问