Module: RailsCommonApi

Extended by:
ActiveSupport::Concern
Defined in:
app/controllers/concerns/rails_common_api.rb

Instance Method Summary collapse

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.full_messages.join("\n")
  }, status: :bad_request
end

#set_localeObject

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