查找条件,其中布尔匹配必须为'true'

时间:2012-02-19 13:45:51

标签: ruby-on-rails

我对系统的实施有疑问,该系统会将消息发送到数据库中的人员子组。

[潜在]消息收件人保存在表格中。每个收件人记录都有一组列布尔值,表明它们是否是特定组的成员:msg_group_1:boolean,msg_group_2:boolean等。收件人可能属于多个组。

还有一个Message表,其中每个消息记录都有一组相应的布尔值,用于指示消息所针对的组。

然后,在撰写新邮件时,表单中会包含一个复选框,指示邮件的目标组。

要实现Send,我需要找到属于新Message所针对的任何组的Recipients表的所有成员。

我不能用,

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 :(得分:0)

好的,这个问题在撰写本文时已经开放了5个月,并且没有人提供解决方案,所以“回答”#39;似乎这是不可能的。