ActiveSupport::CurrentAttributes
#Ruby_on_Rails #ActiveSupport
内部的にはスレッドが使われている
リクエストごとのグローバルステート
リクエストごとに自動的にリセットされる
code:ruby
class Current < ActiveSupport::CurrentAttributes
attribute :blocking_ids
end
module HideBlockingUser
extend ActiveSupport::Concern
included do
before_action :set_current
end
private
def set_current
Current.blocking_ids = current_user&.blocking&.ids
end
end
参照
RailsのCurrentAttributesは有害である(翻訳)TechRacho by BPS株式会社
CurrentAttributesを使ってリクエストごとのdefault_scopeを設定する - ESM アジャイル事業部 開発者ブログ