2012-10-17 38 views
0

我試圖將我最近一次捐贈(以美元計)的捐款日期提交給我的組織,該捐款的基金ID不以X開頭(那些是加拿大捐款)。以下是我用來抽出最近一次捐款的禮物日期的代碼(在控制器中),但它是加拿大的禮物(fund_id = XP05)。我如何獲得最近一次捐款的基金ID不是以X開頭?尋找最近的捐款,不包括以X開頭的基金

@income_batch = Gift.between(Date.today - 2.weeks, Date.today, :field => :gift_date).order('gift_date DESC').first.gift_date 

回答

1

假設fund_id是你gifts表中的字符串字段,你可以使用not like

Gift.where("fund_id not like 'X%").between.... 

你也應該避免使用領域,除非他們是外鍵的_id後綴,如Rails約定規定_id是特定於此目的。


如果fund_id外鍵,和你有一個belongs_to :fundGift模型裏面,你可以使用joinsnot like

Gift.joins(:fund).where("funds.name not like 'X%").between.... 

這假定funds表中的字段稱爲name

+0

謝謝,這工作完美!在X%之後需要一個單引號來閱讀......就像'X%'「)...之間......但它完全符合我希望它做的事情,並且我很欣賞你對後綴的想法。 –