我在路由中使用了两个默认参数:
scope '(/:locale)(/:currency)', currency: /eur|usd/, locale: /de|en/, defaults: { currency: 'eur' } do ...
因为货币应该用于整个访问,所以我在 ApplicationController 中的 default_url_options 中添加了语言环境和货币:
def default_url_options options = {}
{ locale: I18n.locale, currency: params['currency'] }
end
当我生成 URL 时,即使用 url_for(),Rails 默认会忘记货币。只有当我手动添加它时它才有效。例如:
root_path(currency: params['currency'])
我希望默认情况下添加它(当然)。locale没有问题。Rails 正确地处理了这个问题。(也许是因为 globalize3 gem?)
感谢您的任何帮助!