【问题标题】:How to redirect with the same locale in rails如何在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

【问题讨论】:

    标签: ruby-on-rails routes ruby-on-rails-5


    【解决方案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 ParamsI18n for Rails

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 2018-09-10
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-28
      • 2018-01-28
      相关资源
      最近更新 更多