refinerycms引擎i18n路由错误

时间:2012-09-13 10:52:23

标签: ruby-on-rails ruby refinerycms

需要多种语言。

配置了i18n.rb:

Refinery::I18n.configure do |config|
  config.enabled = true
  config.default_locale = :en
  config.current_locale = :en
  config.default_frontend_locale = :en
  config.frontend_locales = [:en, :ru]
  config.locales = {:en=>"English", :ru=>"Russian"}
end

在refinerycms中生成引擎:

rails generate refinery:engine product title:string description:text image:image --i18n title description

rails generate refinery:products

当我尝试打开引擎的任何页面时,我收到以下错误:No route matches {:locale=>:en, :controller=>"refinery/products/products", :action=>"show", :id=>"1"}

请帮忙!

2 个答案:

答案 0 :(得分:1)

在我向CMS添加自定义引擎后,我遇到了同样的问题;我的语言环境选择器'在我的应用程序布局文件中导致了您所描述的错误:

-# Haml:
%ul.locales
  - locales.each do |locale|
    %li= link_to Refinery::I18n.locales[locale], url_for(:locale => locale), :title => Refinery::I18n.locales[locale], :class => "flags-#{locale}"

通过将url_for更改为refinery.url_for,这解决了问题:

-# Haml:
%ul.locales
  - locales.each do |locale|
    %li= link_to Refinery::I18n.locales[locale], refinery.url_for(:locale => locale), :title => Refinery::I18n.locales[locale], :class => "flags-#{locale}"

无法解释发生了什么,但也许这可以解决您的问题。

说实话,所有学分应该转到this answer:)

答案 1 :(得分:0)

你跑了吗?

rake db:migrate
rake db:seed

完成rails generate refinery:products后?