0
我需要语言环境添加的,而不是所有的更新和*_path
电话*_url
我想一个default_url_options
方法添加到我的应用程序控制器的所有路由,这是我使用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
您链接这个答案是我使用的是什么,也为它增加了一个超类所有的命名空间是行不通的控制器 –