相当默认的网址选项

时间:2016-04-30 21:19:11

标签: ruby-on-rails ruby url routing internationalization

我支持两种语言,德语是默认语言(参见下面的routes.rb)。

使用我的Post模型,我现在可以创建如下链接:

link_to t('.title'), posts_path(1), locale: I18n.locale

这导致这些URL取决于区域设置:

  • / EN /帖/ 1
  • /帖/ 1

由于德语是默认语言,我必须包含语言环境,否则链接最终将指向德语表示。所以我必须确保在我的资源的所有链接中包含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)但链接现在看起来不那么好了:

  • /讯息?语言环境= DE
  • /讯息?语言环境= EN

有没有办法获得链接的非参数化版本,但同时使用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

0 个答案:

没有答案