2015-04-04 82 views
1

我使用了一個名爲範圍,試圖找到記錄由1個月前,這裏是我的代碼有:查找記錄由1個月前

scope :six, -> {:conditions["records.created_at > ?", 1.month.ago]} 

和呼叫:

@sixmonths = human.human_logins.six 

雖然我似乎得到以下錯誤:

`can't convert ActiveSupport::TimeWithZone into Intege`r 

這發生在範圍行上。

我是新來的範圍,所以不知道我應該怎麼做,任何想法都會很棒。

回答

2

我不熟悉:conditions方法,但是語法:conditions[]和異常表明它試圖將表達式評估爲Array。

如果只想創建正是1個月前的記錄,使用以下命令:

scope :six, -> { where(created_at: 1.month.ago) } 

如果你想記錄創建比一個月前更(其中您的查詢語法建議),用途:

scope :six, -> { where("created_at > ?", 1.month.ago) }