【发布时间】:2017-08-28 16:52:44
【问题描述】:
我需要将语言环境添加到所有路由,而不是更新所有 *_path 和 *_url 调用我正在尝试将 default_url_options 方法添加到我的应用程序控制器,这是我正在使用的方法
def default_url_options
{ locale: (I18n.locale == I18n.default_locale ? nil : I18n.locale.to_sym) }
end
这是我的路线文件:
locales = I18n.available_locales - [:en]
scope '(:locale)', locale: /#{locales.join('|')}/, defaults: { locale: I18n.default_locale } do
get '/login', to: 'sessions#new', as: :login
root to: 'home#index'
match '*a', to: '#missing_action', via: :all, as: nil
end
login_url 将呈现 http://localhost:3000/login,这不是我想要的。
如果我从路由范围中删除defaults:,我会得到正确的网址
-
http://localhost:3000/login当:locale是我的默认语言环境时 -
http://localhost:3000/es/login当:locale是我的:es
我正在使用Rails 5.1.3
【问题讨论】:
标签: ruby-on-rails