class User < ActiveRecord::Base # User.admin scope :admin, -> { where(role: 'admin') } # user.admin? # => true or false def admin? self.role == 'admin' end end scope(クラスメソッド)とインスタンスメソッド両方の定義が必要ですが、内部でやっていることは本質的には同じことです。 これをscope :adminだけ定義しておくと、admin?も自動的に使えるようになるっていう機能、作ったら需要ありますかねぇ? https://github.com/amatsuda/arel_ruby を使ったらできるんじゃないか、という思いつき。複雑なのは無理だろうけど…。 実装してみた (9/6 追記) arel_ruby の対応の都合で、Rai