如何实现根路由并得到" index"到同一页面

时间:2014-03-31 12:46:07

标签: ruby-on-rails ruby-on-rails-4 routing routes

我想要以下所有网址

  • localhost:3000(在现实世界中,www.example.com)
  • localhost:3000 / index(在现实世界中,www.example.com / index)
  • localhost:3000 / home(在现实世界中,www.example.com / home)

这些网址将路由到同一位置 - index.html.erb。换句话说,同一个控制器的动作相同(static_pages #index)。

我知道这个问题可以通过以下方式解决:

root "static_pages#index"
get "index" => "static_pages#index", :as => :index
get "home" => "static_pages#index", :as => :home

简短的问题是"有没有办法在一个编码句子中,或以更有效和更有效的方式实现这些路线?"

1 个答案:

答案 0 :(得分:0)

一个隐含多行的可能解决方案是使用范围使其更清晰,你将有两行额外的代码,但我发现它更具可读性:

scope :path => '/', :controller => :static_pages do
  get 'index' => :index, :as => 'index'
  get 'home' => :index, :as => 'home'
end

通过这种方式,您可以明确指出哪个控制器用于所有路径+路径(第一部分)。