param ロケールを渡すリクエストを作成しようとすると、i18n がデフォルトのロケールを変更しません
アプリケーションコントローラー
before_filter :set_locale
respond_to :json
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
私のモデル
class FoodType < ActiveRecord::Base
default_scope where(locale: I18n.locale)
FoodTypesコントローラー
def index
render json: FoodType.all
end
ただし、コンソールでは、クエリは変更されません。以前のリクエストから引き続きロケールを渡します
passing locale = pt-BR
FoodType Load (0.4ms) SELECT "food_types".* FROM "food_types" WHERE "food_types"."locale" = 'en'