Rails 3 Active Record инициализирует цепочку поиска - PullRequest
0 голосов
/ 01 сентября 2010

У меня есть функция поиска, которая выполняет базовую фильтрацию в приложении на Rails 3 (используя новый метод цепочки).Фильтрация использует необязательные параметры и выглядит примерно так:

class User < ActiveRecord::Base

  def self.search(params = {})
    users = User.?

    users = users.where(:sin => params[:sin]) if params[:sin]
    ...
    users = users.where("name LIKE :q", :q => "%params[:q]%") if params[:q]
  end

end

Я не уверен, как настроить пользователей по умолчанию для включения всех пользователей.Мне бы хотелось, чтобы функция поиска возвращала все записи, если параметры не указаны, и в противном случае фильтровала.Есть идеи?Спасибо!

1 Ответ

1 голос
/ 01 сентября 2010
class User < ActiveRecord::Base

  def self.search(params = {})
    users = User.scoped

    users = users.where(:sin => params[:sin]) if params[:sin]
    ...
    users = users.where("name LIKE :q", :q => "%params[:q]%") if params[:q]
  end

end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...