在rails中查询的结果

时间:2017-01-16 07:13:36

标签: ruby-on-rails ruby postgresql activerecord

我正在执行数据库搜索,如下所示:

Model.where("column_name ilike ?", "") 

当我没有搜索任何内容时,它会像下面一样运行:

SELECT YEAR(STR_TO_DATE(LEFT(weekly_periods, 8), '%d/%m/%Y')) AS PeriodYear
     , MONTH(STR_TO_DATE(LEFT(weekly_periods, 8), '%d/%m/%Y')) AS PeriodMonth
     , SUM(Amount) AS TotalAmount
  FROM my_table
 GROUP BY PeriodYear, PeriodMonth;

这给了我所有的表格行。

当我的搜索参数为空时,我希望它运行如下:

{{1}}

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

好吧,只需检查params是否为空字符串:

Model.where("column_name ilike ?", abc.blank? ? '' : "%#{abc}%")
# or, more strict check
Model.where("column_name ilike ?", abc == '' ? '' : "%#{abc}%")