アプリケーション コントローラで before_action/before_filter を使用せずにロケールを設定し、リクエスト間で設定を維持する方法はありますか?
私は現在の解決策を避けようとしています:
class ApplicationController < ActionController::Base
before_action :set_locale
def set_locale
I18n.locale = current_user.locale if current_user
end
end
class LocaleController < ApplicationController
skip_authorization_check
def index
locale = params[:locale]
raise 'Unsupported locale' unless ['en', 'pt'].include?(locale)
error_message = "Could not set locale" unless current_user.update_column(:locale, locale)
I18n.locale = current_user.locale if error_message.nil?
redirect_to :back, :alert => error_message
end
end