Rails - 从字符串中调用方法

时间:2015-05-14 17:48:44

标签: ruby-on-rails rspec

我试图调用一个我在字符串中定义的方法,该方法作为参数传递给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...

1 个答案:

答案 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}}关系。