我需要将语言环境添加到所有路由,而不是更新所有*_path
和*_url
调用我尝试向应用程序控制器添加default_url_options
方法,这是方法I& #39; m使用
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
答案 0 :(得分:0)
您是否尝试过使用命名空间?
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let spacing : CGFloat = (collectionViewLayout as? UICollectionViewFlowLayout)?.minimumInteritemSpacing ?? 0.0
let widthPerItem = (view.frame.width - spacing * 2)/ 3
return CGSize(width: widthPerItem, height: widthPerItem)
}
也刚刚发现这个,看起来这些人已经解决了它: https://stackoverflow.com/a/8237800/3753556