我正在使用带有 Rails 4.0.0的 js-routes gem ( https://github.com/railsware/js-routes )。
我想要做的是在我的 rails 应用程序中由 js-routes 生成的每个路由中包含当前的语言环境字符串。这个语言环境字符串(例如“en”)将从当前请求的查询字符串中提取。(因此,如果用户决定切换语言环境,它可以从一个页面加载到下一个页面加载。)
在 application_controller.rb 我有以下发送和接收语言环境。这成功地在 Rails 生成的路由中附加了 locale 参数,但不是由 js-routes 生成的。(config/routes.rb 中没有设置)
application_controller.rb:
before_filter :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
def default_url_options(options={})
{ locale: I18n.locale }
end
在 javascript 中,我可以调用Routes.login_path()
get /login
,但我想获取/login?locale=en
而不必将语言环境传递给该login_path()
方法。对于我所有的其他路线也是如此。
我的问题是如何让 js-routes 将 'locale' 参数添加到它生成的所有路由中,例如/login?locale=fr
,无需将任何其他选项传递给 Routes 函数。