我有一个关于系统实现的问题,该系统将向数据库中的子组发送消息。
[潜在]邮件收件人保存在一个表中。每个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个月,没有人提供解决方案,所以"答案"似乎是不可能的。