我支持两种语言,德语是默认语言(参见下面的routes.rb
)。
使用我的Post
模型,我现在可以创建如下链接:
link_to t('.title'), posts_path(1), locale: I18n.locale
这导致这些URL取决于区域设置:
由于德语是默认语言,我必须包含语言环境,否则链接最终将指向德语表示。所以我必须确保在我的资源的所有链接中包含locale
参数。
为了避免这些额外的工作以及指向错误区域设置的链接,我设置了default_url_options
def default_url_options(options={})
{ locale: I18n.locale }
end
积分转到Rails: changing locale and keeping page parameters。
我的链接现在更加简洁:link_to t('.title'), posts_path(1)
但链接现在看起来不那么好了:
有没有办法获得链接的非参数化版本,但同时使用default_url_options
。
routes.rb
供参考:Rails.application.routes.draw do
scope '(:locale)/', locale: /en|de/, defaults: {locale: 'de'} do
root to: 'posts#index'
resources :posts
end
end