我正试图抓住最近捐赠的礼物日期(以美元计)到我的组织,该组织的基金ID不是以X开头(这些是加拿大捐款)。这是我用来提取最近一次捐赠的礼物日期的代码(在控制器中),但它是加拿大的礼物(fund_id = XP05)。如何使用不以X开头的基金ID获得最近的捐赠?
@income_batch = Gift.between(Date.today - 2.weeks, Date.today, :field => :gift_date).order('gift_date DESC').first.gift_date
答案 0 :(得分:1)
假设fund_id
是gifts
表格中的字符串字段,您可以使用not like
:
Gift.where("fund_id not like 'X%").between....
你应该避免在字段上使用_id
后缀,除非它们是外键,因为Rails惯例规定_id
是专门用于此目的。
如果fund_id
是外键,并且您的belongs_to :fund
模型中有Gift
,则可以使用joins
和{{ 1}}:
not like
这假设Gift.joins(:fund).where("funds.name not like 'X%").between....
表中的字段被称为funds
。