How to have multiple conditions in a named scope?

后端 未结 3 1663
南方客
南方客 2020-12-18 04:58

I have a User model. I can check whether a User is an admin by doing a_user.try(:admin?).

I\'d like to define a named scope that gets all Users updated

3条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-18 05:35

    Just another possibility, usable in Rails 4,

    scope :recent, -> { where('updated_at > ?', 5.minutes.ago }
    # If you were using rolify, you could do this
    scope :non_admin, -> { without_role :admin }
    # given the OP question,
    scope :non_admin, -> { where(admin: false) }
    scope :non_admin_recent, -> { non_admin.recent }
    

    This is just another possible format and taking in account the possibility of using Rolify gem.

提交回复
热议问题