Rails路由(root:to => …)

我知道如何将我的rails应用程序的路由根设置为控制器和操作。

但如何添加一个ID?

/pages/show/1应该是根。

我如何设置?

有这个相同的问题,这对我工作:

 root :to => "pages#show", :id => '1' 

从Rails 4.0开始 ,你可以像这样声明根路由:

 root 'controller#action' 

马修的解决scheme的作品,但我认为这是更容易读取对象。 例如,假设您要为名称为“landing”的页面创build根Page#show操作。 这是更可读:

 root :to => "pages#show", :id => Page.find_by_name("landing").id 

从性能angular度来看,这个解决scheme更糟,因为它需要额外的数据库查询,但是如果性能不是高优先级的话,这个解决scheme更具可读性。

尝试:

  match 'pages/show/:id' => 'pages#show', :as => :root 

在Rails控制台中。 rake routes | grep root rake routes | grep root ,应该显示像这样的东西:

 root /pages/show/:id(.:format) {:controller=>"pages", :action=>"show"} 

希望有所帮助。

我正在使用Rails 5.1将主页指向特定的博客。 在configuration/ routes.rb我有…

 root 'blogs#show', {id: 1} 

这会将根路由指向/ blogs / 1

我正在做一个我正在build设的博客网站。 第一个博客将成为主要网站博客以及主页。

干杯