【发布时间】:2011-07-22 14:24:08
【问题描述】:
我对以下问题感到困惑:在我的网络应用程序中,用户可以从下拉框中选择他们的语言。选择后,一段 Javascript 获取当前 url,用新的语言环境字符串替换其中的旧语言环境子字符串,并将 window.location 设置为新 url。只要 URL 是 GET 请求的结果,它就可以很好地工作。
当用户发布表单并返回验证错误时,就会出现我的问题。该网址现在是一个 POST 网址,(在我的情况下)不适用于 GET 请求。因此,如果用户现在决定切换语言,则会向服务器发送无效的 GET 请求。
有什么办法解决这个问题吗?
更具体一点:我在 Rails 3.0.9 的 Devise (1.4.2) 注册表单上遇到了这个问题
【问题讨论】:
-
当前
locale从未存储在会话中? -
在 url 中,像这样:www.mydomain.com/en/user/register。
-
@apneadiving,在 URL 中而不是在会话中设置区域设置是许多人的首选,因此对特定 URL 的 GET 请求总是返回相同的内容——在这种情况下使用相同的语言。
-
@Wizard of Ogz:我总是使用兼性语言环境来做这两件事。所以我想我们同意
-
@apneadiving 非常好,下次使用语言环境时我会记住这一点
标签: javascript ruby-on-rails devise