Фильтрация результатов в рельсах с многозначными флажками - PullRequest
0 голосов
/ 25 июня 2010

Я пытаюсь создать фильтр в приложении rails, которое использует несколько флажков, соответствующих одному столбцу / атрибуту db, чтобы отфильтровать результаты, но я не уверен, как именно это сделать.

EX.
index показывает список погоды за последние несколько лет, и вы хотите отфильтровать его
Эти атрибуты будут частью класса Day.

Просмотр
<fieldset><br> <legend>Sky</legend><br> <%= check_box_tag('filter[sky][]', 'sunny') %>Sunny<br> <%= check_box_tag('filter[sky][]', 'partly sunny') %>Partly Sunny<br> <%= check_box_tag('filter[sky][]', 'overcast') %>Overcast<br> </fieldset><br> <fieldset><br> <legend>Humidity</legend><br> <%= check_box_tag('filter[humidity][]', 'low') %>Low<br> <%= check_box_tag('filter[humidity][]', 'average') %>Average<br> <%= check_box_tag('filter[humidity][]', 'high') %>High<br> </fieldset> `

Затем я хочу просмотреть параметры каждого фильтра и применить все выбранные.Поэтому, если я хочу видеть все солнечные дни с низкой и средней влажностью, я бы отмечал эти поля и получал дни, которые были суммированными с низкой или средней влажностью.С точки зрения SQL мы будем говорить о предложении IN.

Я довольно плохо знаком с рельсами, поэтому я не уверен, есть ли какие-то специальные функции рельсов, которые я должен использовать для этого или нет.Мне просто нужно написать функцию для запуска через флажки и построить оператор SQL?

Любая помощь очень ценится.Я буду редактировать этот пост, если мне нужно, чтобы уточнить что-либо.

1 Ответ

0 голосов
/ 06 июля 2010

Зависит от версии Rails, на которой вы работаете, но я бы посоветовал вам взглянуть на динамические области:

http://ryandaigle.com/articles/2008/12/29/what-s-new-in-edge-rails-dynamic-scope-methods

Если именованные области являются совершенно новыми для вас, вам следуетвероятно, прочитайте статью, связанную с этой страницы, во втором абзаце (сразу после первого фрагмента кода).

То, что вы предлагаете, очень немного сложнее, потому что вы хотите иметь возможность ИЛИ в небеи влажность, а затем и все вместе, но 20 минут работы не принесут результата - я думаю, что вы сами выиграете от выполнения упражнения, даже если вы новичок в Rails (если я ошибаюсь, скажем,итак :-)).

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