好的,我在这里有点困惑 - 这个问题可能有一个简单的解决方案 - 但我在过去两个小时内没有想到它,所以我想我可能会问。
我在DB中有一个用两种不同语言(AT& EN)编写的博客 - 在I18n中定义的语言环境是(德语)& en(英语)。
每次创建博客条目时,我都会将区域设置与条目一起保存。简化示例:
id | title | content | locale
-----------------------------------------
1 | First Blog | Hey, .. | en
2 | Erster Blog | Hallo, . | at
等
因此,一般情况下,我将这两种语言分开保存在网站上 - 好像这两种语言是两个不同的网站,但访问博主的个人资料会显示最近的博客列表。一些博主用德语和英语发帖。
如果访问者现在访问www.mysite.com/en - 并点击德国博客上的参考文件,则会出错。
在控制器中,我定义了以下内容,以确保无法通过两个URL访问相同的内容:
@blog = Blog.friendly.find(params[:id], :conditions => ["language_id = ?", I18n.locale] )
所以这是为了确保SEO明智我不会受到惩罚。 (www.mysite.com/en/first-blog == www.mysite.com/at/first-blog)。目前我在模型中捕获异常:
around_filter :catch_not_found
....
def catch_not_found
yield
rescue ActiveRecord::RecordNotFound
redirect_to blogs_path, :flash => { :error => "Sorry, the Blog isn't available in your language." }
end
问题是 - 如何在link_to中传递区域设置,以便用户以正确的区域设置重定向到博客?
由于