我想创建一个没有URL中规定的控制器的rails路由

时间:2013-12-30 07:06:43

标签: ruby-on-rails controller routes

我希望创建一个到控制器的路由,但我想不要在URL中规定该控制器的名称。

所以网址就是这样的。
www.blabla.com/about_us.html

我不想要一个about_us控制器,而是想要一个MainController和一个about_us动作。

我已经从里到外读过路线,但没有一个实例表明如何做到这一点。

有谁知道如何将无控制器路由与特定控制器匹配?

5 个答案:

答案 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}

无法访问私人操作,但所有其他操作均无法访问