2017-01-16 73 views
2

我执行如下一个数据库搜索:结果哪里查询在轨

abc = params[:search]  
Model.where("column_name ilike ?", "%#{abc}%") 

当我在寻找什么它正在运行象下面这样:

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

这是给我的所有行表。

当我的搜索参数是空的,我希望它像运行:

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

我怎样才能做到这一点?

+0

我注意到你从来没有接受提供给您的问题的答案。请务必回顾一下您的问题,并在他们解决您的问题时接受最佳答案。通过这种方式,您可以让社区知道问题已经解决,同时您还奖励那位提供解决方案的人的努力。 –

回答

2

好了,只是检查是否PARAMS是一个空字符串:

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

非常感谢! –

+0

@MayureshSrivastava没有probs,请确保接受答案,如果这对你有用。另请参阅我在您的问题下留下的评论。 –

+0

确定mate ..done。 –