0

私のモデルでは、モデルにもあるメソッドを利用するスコープを作成したいと考えています。

私は次のモデルメソッドを持っています:

  def is_paired
    ! pairing_id.nil?
  end

このようなスコープを作りたいと思います

  scope :paired, where(:is_paired => true)

しかし、私がそうすると、エラーが発生します:

SQLite3::SQLException: no such column: participants.is_paired: SELECT "participants".* F...

モデル内のメソッドを利用するスコープを作成するにはどうすればよいですか?

4

1 に答える 1

1

それはいけません。基本的に、、などのスコープで使用されるwhereメソッドorder。SQLクエリに「変換」されます。Railsは、カスタムメソッドをSQLクエリに変換する方法を知りません。とにかく、次のアプローチを使用できます。scope :paired, where('pairing_id IS NOT NULL') 詳細については、次を確認できます。NOTNULLを使用した条件のレール

于 2012-06-15T20:45:50.333 に答える