【发布时间】:2011-09-24 18:57:33
【问题描述】:
我知道如何将我的 rails 应用程序的路由根设置为控制器和操作。
但是如何添加id呢?
/pages/show/1 应该是根。
如何设置?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 routes url-routing
我知道如何将我的 rails 应用程序的路由根设置为控制器和操作。
但是如何添加id呢?
/pages/show/1 应该是根。
如何设置?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 routes url-routing
遇到了同样的问题,这对我有用:
root :to => "pages#show", :id => '1'
【讨论】:
?id=1 添加到 url...
截至Rails 4.0,您可以像这样声明根路由:
root 'controller#action'
【讨论】:
root 'controller#action', {your_params}
我正在使用 Rails 5.1 将主页指向特定的博客。在 config/routes.rb 我有 ...
root 'blogs#show', {id: 1}
这会将根路由指向 /blogs/1
我正在我正在构建的博客网站上执行此操作。第一个博客将是主站点博客以及主页。
干杯
【讨论】:
Matthew 的解决方案有效,但我认为获取对象更具可读性。例如,假设您要根到名称为“landing”的页面的Page#show 操作。这更具可读性:
root :to => "pages#show", :id => Page.find_by_name("landing").id
从性能的角度来看,这个解决方案更差,因为它需要额外的数据库查询,但如果性能不是高优先级,这个解决方案更具可读性。
【讨论】:
试试:
match 'pages/show/:id' => 'pages#show', :as => :root
在 Rails 控制台中。 rake routes | grep root,应该显示如下:
root /pages/show/:id(.:format) {:controller=>"pages", :action=>"show"}
希望对您有所帮助。
【讨论】:
使用 Rails 5.1 将此添加到 config/routes.rb
root 'pages#show', {id: 1}
【讨论】: