2017-01-16 2 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 Нет проблем, просьба принять ответ, если это сработало для вас. Также см. Комментарий, который я оставил по вашему вопросу. –

+0

уверенный помощник. –

Смежные вопросы