如何在rails中使用相同的语言环境进行重定向
Posted
技术标签:
【中文标题】如何在rails中使用相同的语言环境进行重定向【英文标题】:How to redirect with the same locale in rails 【发布时间】:2021-09-27 10:15:58 【问题描述】:我想使用包含的语言环境进行重定向:
get '/login', to: redirect('/:locale/newlogin', status: 301)
如果输入 mysite.com/en/login
重定向到 mysite.com/:locale/newlogin
我该怎么做才能重定向到语言环境 mysite.com/en/newlogin
?
【问题讨论】:
【参考方案1】:首先,正确定义routes.rb:
scope "/:locale" do
get '/login', to: redirect("/newlogin", status: 302)
end
其次,ApplicationController 中的某处必须是语言环境设置:
class ApplicationController < ActionController::Base
before_action :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
def default_url_options
locale: I18n.locale
end
end
阅读Setting the Locale from URL Params 和I18n for Rails。
【讨论】:
以上是关于如何在rails中使用相同的语言环境进行重定向的主要内容,如果未能解决你的问题,请参考以下文章
Python QWebEngineView 重定向到错误的语言页面