小编Vin*_*ent的帖子

使用Globalize&Friendly_id将同一页面重定向到不同的语言

过去几个小时我一直在摸不着头脑,寻找答案,但我找不到任何地方.

我的宝石文件:

# Use globalize for translating models
gem "globalize", github: "ncri/globalize" # for Rails 4.2
gem 'globalize-accessors', '~> 0.1.5'

# Use friendly_id for slugs
gem 'friendly_id', '~> 5.1.0'
gem 'friendly_id-globalize', '~> 1.0.0.alpha1'
Run Code Online (Sandbox Code Playgroud)

情况如下:

我有两种语言"en"和"fr"

2个模型:pages和pages_translations页面有一个slug列,pages_translations也有一个slug列.

如果我查看页面 - > en/pages/slug-en,它可以工作.

如果我查看页面 - > fr/pages-slug-fr,它可以工作.

所以我假设friendly_id和globalize已正确配置.

但是我的问题是我不能使用以下语言切换器:

  <% if I18n.locale != :en %>
    <li>
    <%= link_to t('menu.languages.short_en'), url_for(locale: 'en') %>
    </li>
<% end %>
Run Code Online (Sandbox Code Playgroud)

路线变为en/pages/slug-fr(即语言改变但不是slug).

我在初始化程序中激活了config.use:finders.

我的页面模型:

translates :title, :slug, :blurb, :content, :seo_title, :seo_description, :seo_keywords
  globalize_accessors :locales => [:en, :fr], :attributes …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails friendly-id globalize3 globalize ruby-on-rails-4.2

7
推荐指数
1
解决办法
824
查看次数