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') 有关更多详细信息,您可以检查:Rails where condition using NOT NULL

于 2012-06-15T20:45:50.333 回答