Есть ли хороший способ СУШИТЬ дублирование логики области видимости / предиката?

Например, рассмотрим следующий код (в модели):

scope :popular, where("views >= 250 OR (views >= 10 AND avg_rating >= 4.75)")

def popular?
  views >= 250 or views >= 10 && avg_rating >= 4.75
end

Первое условие - SQL, второе - ruby, но все же есть очевидное дублирование. Есть ли хороший способ СУШИТЬ его? Что лучше всего подходит для таких случаев?

10
задан Michael Durrant 8 February 2012 в 23:23
поделиться