У меня есть объект ActiveRecord RaceCarDriver
.Три поля являются логическими: is_from_texas
, is_from_arkansas
и is_from_indiana
.В пользовательском интерфейсе поиска пользователь не может выбрать ни один, чтобы увидеть все результаты, выбрать is_from_texas
, чтобы увидеть только драйверы из Техаса, или выбрать is_from_texas
и is_from_indiana
, чтобы просмотреть все драйверы из одного из этих состояний.
Теперь я знаю, что этот пример немного надуманный, но я хотел избежать сложности реального приложения.
Моя лучшая попытка заключается в следующем:
@drivers = RaceCarDriver.select('name').
where(params[:check_texas] == 0 || :is_from_texas => params[:check_texas]).
where(params[:check_arkansas] == 0 || :is_from_arkansas => params[:check_arkansas]).
where(params[:check_indiana] == 0 || :is_from_indiana => params[:check_indiana])
Однако,это ANDS
объединенные в цепочку where
предложения, так что если бы Техас и Индиана были оба проверены, водитель должен был быть из обоих штатов.
Опять же, я знаю, что это надумано.Любая помощь приветствуется.