【发布时间】:2016-04-12 11:08:14
【问题描述】:
我有一个具有以下范围路由的应用:
scope "(:locale)", :locale => Regexp.new(I18n.available_locales.join('|')) do
# ...
# lots of routes here
# ...
end
如您所见,“语言环境”在这里是可选的。 http://myapp.com/en/foo 和 http://myapp.com/foo 都以相同的控制器#action 结束。效果很好。
现在我想摆脱 url 中的语言环境,但我希望旧路由仍然有效,所以简单地删除范围语句是行不通的。我想将基于旧语言环境的 url 重定向到非语言环境 url。像这样:
http://myapp/en/foo 重定向到http://myapp/foo
和
http://myapp/foo 仍然像以前一样工作。
到目前为止,我只在 Rails 指南中为个别路线提供了found 一个“重定向”选项。但我希望这适用于一系列路线;我的“范围”块中的路线。
关于如何让它发挥作用的任何想法?
【问题讨论】:
-
@Hieu Pham 感谢您的参与,但您的解决方案没有进行重定向:|
-
嘿!该解决方案已被接受,它在我的答案上方,我认为它会起作用,我很久以前就为您的问题添加了书签,所以现在我刚刚看到了一个解决方案,请注意:)
-
@Hieu Pham 欣赏!
标签: ruby-on-rails redirect scope routing