2015-05-14 26 views
-1

我試圖打電話給我從一個字符串中定義的方法,它是作爲參數傳遞給Where方法過去了,就像這樣:Rails的 - 從字符串中調用一個方法

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

您是否完成了所有數據庫遷移?看起來像列失蹤 – Richlewis

回答

1

它好像你有你的time屬性和date_valid方法調用您的where調用。這當然假設time實際上是您的exchange_rates表中的一列。以下內容應該適合你。

existing_size = self.exchange_rates.where("time < ?", date_valid).count 

我也用count代替size因爲count確實在數據庫中的計算,而size做它在返回exchanged_rates關係內存。