Refinerycms 2.1.0,I18n打破导航菜单

时间:2013-12-12 21:33:06

标签: ruby-on-rails ruby rails-routing refinerycms

我有一个由refinerycms 2.1.0提供支持的网站。

我需要支持4种语言,因此我使用refinerycms-i18n 2.1.0 gem。 我在管理区域显示了所有标志,不同版本的页面似乎都有效。

我在标题中有我的语言菜单:

link_to "ESP", {:locale => :es}, :class => (params[:locale] == "es" ? 'selected' : nil)

链接的生成方式如下:mysite.com/es/...。 但是,对于英语区域设置,url中没有设置:locale参数。

问题是,对于除英语之外的所有语言环境,导航菜单中的链接似乎生成错误:使用页面ID代替slug而不是slug。链接看起来像.../es/<page_id>.../es/parent_page_slug/<page_id>。当我点击它们时,会渲染404。对于英语语言环境,一切都很好:.../parent_page_slug/child_page_slug

我也有页脚菜单,实现类似于here所描述的,它与所有语言环境完美配合。

我的routes.rb:

get '/' => "application#index"  
mount Refinery::Core::Engine, :at => '/'

2.1.0以来,据我所知,我甚至无法访问_menu.html.erb文件。我有什么选择?如果需要,我很乐意为您提供更多信息。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

关于404错误,可能是您没有其他语言的内容。或者,如果您正在翻译页面标题,您可能至少也想用不同语言编写页面标题。

Refinerycms 2.1.0提供了一种生成自定义菜单的不同方式,讨论了here