我试图调用一个我在字符串中定义的方法,该方法作为参数传递给where方法,如下所示:
existing_size = self.exchange_rates.where("? < date_valid", :time).size
方法是:
def date_valid
date = Date.today
if(Time.now.hour >= HOUR)
date += 1.day
end
date
end
然而,我收到错误:
ActiveRecord::StatementInvalid:
PG::UndefinedColumn: ERROR: column "date_valid" does not exist
LINE 1: ...xchange_rates"."prediction_id" = $1 AND ('time' < date_valid...
答案 0 :(得分:1)
好像您在time
电话中交换了date_valid
属性和where
方法。这当然是假设time
实际上是exchange_rates
表中的一列。以下内容适合您。
existing_size = self.exchange_rates.where("time < ?", date_valid).count
我还使用count
而不是size
,因为count
在数据库中进行计算,而size
在返回的{exchanged_rates
内存中进行计算1}}关系。