Ransack使用自定义字段

时间:2015-07-02 11:09:40

标签: ruby-on-rails ransack

在我的应用中,我的模型invoice具有属性invoice_date。 在我的Ransack搜索表单中,我想要一个monthyear选择框,根据这些值,我想要在此期间内返回发票日期的发票。

monthyear不是模型属性,因此我无法使用f.select :month_eqf.select :year_eq。我怎么能这样做?

我调查ransackers并在我的invoice模型中创建了这个:

ransacker :month do
  year = 2015
  where("invoice_date >= ? and invoice_date <= ?", Date.new(year,month,1), Date.new(year,month).end_of_month)
end

如何在此搜索中使用month_eq?如何退回发票集合?

1 个答案:

答案 0 :(得分:0)

由于我理解了您的问题,您需要一组与给定月份匹配的结果。所以在你的搜索者中,使用以下

ransacker :month do
  where("extract(month from created_at) =? AND extract(year from created_at) =? ",Date.today.month, 2015)
end