如何使用translate_routes gem在rails 3.0.11 app的url中显示默认语言环境

时间:2012-02-29 02:27:15

标签: ruby-on-rails-3 internationalization

我有一个rails 3.0.11应用程序。

我正在使用translate_routes gem,它似乎有一个bug,所以我不能与locales进行通配符匹配,如下所示: 的routes.rb

MySite::Application.routes.draw do
.
.
.


match '/:locale/*path' => 'site#show', :as => 'cms'
 ActionDispatch::Routing::Translator.translate_from_file('config/locales/routes.yml')

所以我必须添加以下内容:

ActionDispatch ::路由:: Translator.translate_from_file( '配置/语言环境/ routes.yml')     匹配'/(:locale)/ * path'=> 'cms#show',:as => 'cms',: locale => / FR | AR |烯/

这很有效,因为路径具有区域设置,系统可以找到路径。但它显示

en/somepage 

我想要的时候

/

表示默认值。

有关如何不显示默认语言环境的任何想法?

1 个答案:

答案 0 :(得分:1)

您是否尝试过像这样覆盖default_url_options

def default_url_options(options={})
  options.merge!({ :locale => ((I18n.locale == I18n.default_locale) ? nil : I18n.locale) })
end