我有一个用户到网络模型的一对多关联。我的架构信息的相关部分如下。
# == Schema Information
# Table name: users
#
# id :integer not null, primary key
# name :string(255)
#
# Table name: networks
#
# id :integer not null, primary key
# user_id :integer
# uid :string(255)
# name :string(255)
# pub_url :string(255)
我想使用网络模型的 name 属性过滤掉具有特定多个网络的用户。例如,如果我检查 facebook 和foursquare 作为过滤器,我想找回同时连接了facebook 和foursquare 的用户。我当前的实现是传递一个包含用户可以添加的网络名称的数组,如下所示。
filter :networks_name, :as => :check_boxes,
:collection => %w(facebook twitter foursquare linkedin)
但是,这对过滤器使用 OR 条件,该过滤器检索具有任何选中项目的用户。我真正想要的是满足所有检查项目的用户。实现这一目标的正确方法是什么?