我的ActiveRecord类中定义了一个范围,让我们说:
class Book < ActiveRecord::Base
scope :old, where( "published_at < ?", 1.year.ago )
end
我想问这个类的任何实例是这样的:
book.old?
有没有办法在不重复where
定义的情况下执行此操作?
答案 0 :(得分:4)
使用您的范围在数据库上运行另一个查询:
Book.old.exists?(book.id)
如果你想在多个地方重复使用它,最好实现一个方法:
def old?
Book.old.exists?(id)
end
book.old?