ruby-on-rails-3.1 – 具有可选范围的Rails路由“:locale”
发布时间:2020-12-16 22:06:55 所属栏目:百科 来源:网络整理
导读:我正在使用Rails 3.1应用程序,我想为应用程序支持的不同语言设置特定的路由. /es/countries/de/countries… 对于默认语言(‘en’),我不希望在url中显示语言环境. /countries 这是我设置的路由定义. scope "(:locale)",:locale = /es|de/ do resources :count
我正在使用Rails 3.1应用程序,我想为应用程序支持的不同语言设置特定的路由.
/es/countries /de/countries … 对于默认语言(‘en’),我不希望在url中显示语言环境. /countries 这是我设置的路由定义. scope "(:locale)",:locale => /es|de/ do resources :countries end 它的效果很好,直到我尝试使用带有“en”的路径助手作为语言环境. 在控制台中: app.countries_path(:locale => 'fr') => "/fr/countries" app.countries_path(:locale => 'en') => "/countries?locale=en" 我不想要“?locale = en”. 有没有办法告诉rails使用’en’区域设置,区域设置参数不应该添加到url? 谢谢 解决方法
这应该是一个更好的解决方案:
在你的路线, scope "(:locale)",locale: /#{I18n.available_locales.join("|")}/,defaults: {locale: "en"} do 正如MegaTux所说,在范围内设置默认值:{locale:“en”}. 优势: 可能的问题:似乎默认值:{locale:“en”}总是覆盖您传入的任何其他值以进行语言环境.该选项被命名为default,所以我希望它只有当没有值时才会将locale分配给’en’,但这不会发生.有人遇到这个吗? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |