查找必须'true'布尔匹配的条件



我有一个关于系统实现的问题,该系统将向数据库中的子组发送消息。

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

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

然后,当编写新消息时,表单中会包含一个复选框,用于指示该消息要用于哪些组。

要实现"发送",我需要在Recipients表中查找属于新邮件要发送的任何组的所有成员。

我不能用,

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

因为这将匹配布尔值相等的记录,即使这对布尔值都为false(显然我只想要两个标志都为true的情况)。

有没有一种有效的方法可以通过SQL搜索或其他RubyonRails技巧来"找到"这些标志,从而在两个标志都为true的情况下获得匹配的记录?

谢谢。

好吧,在撰写本文时,这个问题已经开放了5个月,没有人提供解决方案,所以"答案"似乎是不可能的。

最新更新