2

我在我的 ActiveRecord 类中定义了一个范围,比方说:

class Book < ActiveRecord::Base
  scope :old, where( "published_at < ?", 1.year.ago )
end

我想问这个类的任何实例是这样的:

book.old?

有没有办法在不重复where定义的情况下做到这一点?

4

1 回答 1

4

使用您的范围在数据库上运行另一个查询:

Book.old.exists?(book.id)

如果你想在多个地方重用它,最好实现一个方法:

def old?
  Book.old.exists?(id)
end

book.old?
于 2012-11-16T12:47:05.820 回答