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 に答える