-1
로케일을 설정하고 응용 프로그램 컨트롤러에서 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
그리고 어쩌면 당신이 그런 짓을하고 싶습니다. –
어쩌면 한 번만 실행해야하는 필터 전에 조건부로 시도해보십시오. 아직도 당신이 찾고있는 것이 아니라면, 사용한다면 몇 가지 갈고리를 고쳐야할까요? –