Module: RailsCommonApi
- Extended by:
- ActiveSupport::Concern
- Defined in:
- app/controllers/concerns/rails_common_api.rb
Instance Method Summary collapse
- #process_errors(model) ⇒ Object
-
#set_locale ⇒ Object
Accept-Language: “en,zh-CN;q=0.9,zh;q=0.8,en-US;q=0.7,zh-TW;q=0.6”.
Instance Method Details
#process_errors(model) ⇒ Object
37 38 39 40 41 42 |
# File 'app/controllers/concerns/rails_common_api.rb', line 37 def process_errors(model) render json: { error: model.errors.as_json(full_messages: true), message: model.errors..join("\n") }, status: :bad_request end |
#set_locale ⇒ Object
Accept-Language: “en,zh-CN;q=0.9,zh;q=0.8,en-US;q=0.7,zh-TW;q=0.6”
45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'app/controllers/concerns/rails_common_api.rb', line 45 def set_locale request_locales = request.headers['Accept-Language'].to_s.split(',') available_locales = I18n.available_locales.map(&:to_s) locale = (available_locales & request_locales)[0] unless locale.present? locale = request_locales.first.to_s.split('-').first end locale ||= I18n.default_locale I18n.locale = locale if current_user && current_user.locale.to_s != I18n.locale.to_s current_user.update locale: I18n.locale end logger.debug " ==========> Locale: #{I18n.locale}" end |