2011-11-19 15 views
3

我有一個Waiver has_many成員關係的對象。我想弄清楚,如果放棄了會員某一季度爲:Rails 3 ArgumentError:未知的鍵:begin_date

def has_current_membership? 
    memberships.count("begin_date >= :begin_date AND end_date <= :end_date", { :begin_date => Time.now.beginning_of_quarter, :end_date => Time.now.end_of_quarter }).count > 0 
end 

然而,這給了我ArgumentError: Unknown key: begin_date。然而,會員確實有BEGIN_DATE列,因爲如果我在控制檯做Waiver.first.memberships我得到:

[#<Membership id: 20, waiver_id: 1, begin_date: "2011-10-01", end_date: "2012-01-01", created_at: "2011-11-19 07:10:10", updated_at: "2011-11-19 07:10:10">] 

我在做什麼錯?

回答

7

您應該使用.where爲查找條件,而不是.count兩次:

memberships.where("begin_date >= :begin_date AND end_date <= :end_date", { :begin_date => Time.now.beginning_of_quarter, :end_date => Time.now.end_of_quarter }).count > 0 
+0

哇!我不敢相信我沒注意到...... –

相關問題