Найти с условием, что логические совпадения должны быть истинными - PullRequest
0 голосов
/ 19 февраля 2012

У меня есть вопросы, касающиеся внедрения системы, которая будет отправлять сообщения подгруппам людей, находящихся в базе данных.

Получатели [потенциальных] сообщений хранятся в таблице.Каждая запись получателя имеет набор логических значений столбцов, указывающих, являются ли они членами определенной группы или нет: msg_group_1: логическое значение, msg_group_2: логическое значение и т. Д. Получатели могут принадлежать к нескольким группам.Таблица сообщений, где каждая запись сообщения имеет соответствующий набор логических значений для указания групп, для которых предназначено сообщение.

Затем, когда составляется новое сообщение, форма включает в себя флажок, чтобы указать, какие группы сообщенияпредназначен для.

Чтобы реализовать отправку, мне нужно найти всех членов таблицы получателей, принадлежащих к любой из групп, для которых предназначено новое сообщение.

Я могу 't,

Recipients.find(:all, :conditions => ['msg_group_1 = ? OR msg_group_2 = ?', @message.msg_group_1, @message.msg_group_2])

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

Существует ли эффективный способ «найти» их с помощью поиска SQL или другого трюка с Ruby on Rails, который позволит получитьсоответствующие записи, где оба флага верны?

Спасибо.

1 Ответ

0 голосов
/ 21 июля 2012

ОК, этот вопрос был открыт в течение 5 месяцев на момент написания, и никто не предложил решение, поэтому «ответ», по-видимому, заключается в том, что это невозможно.

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