如何在Rails中覆盖`root_path`?

时间:2015-09-08 18:19:57

标签: ruby-on-rails ruby routing

我的语言环境定义如下:

# routes.rb
scope "(:locale)", locale: /#{I18n.available_locales.join("|")}/ do
  ...
  root "home#index"
end

我还在default_url_params的{​​{1}}中设置了区域设置 这样,我的所有路线和网址都包含这样的区域设置:http://example.com/en/something
http://example.com/fr/something
这对我来说是一种预期的行为。

我也有这样的根网址:
http://example.com/en
http://example.com/fr

我想要实现ApplicationController排除 en(默认)区域设置,以便root_path区域设置为root_path(要么已通过)明确地或通过:en)是http://example.com/

有什么办法吗? 我可以覆盖default_url_params来进行我的黑客攻击吗?

谢谢。

1 个答案:

答案 0 :(得分:4)

覆盖ApplicationController中的def root_path (I18n.locale == 'en') ? '/' : super end 方法:

{{1}}