我正在尝试计算养狗的用户。
User.joins(:pets).where("pets.type = ?", :dog).count
这将返回用户数量 + 他们的狗的组合,而不是我只想要实际用户的数量。
我究竟做错了什么?
更新
我还尝试使用上面的查询来获取用户,它返回一个相同用户的数组,根据他们有多少狗重复多次。
我正在尝试计算养狗的用户。
User.joins(:pets).where("pets.type = ?", :dog).count
这将返回用户数量 + 他们的狗的组合,而不是我只想要实际用户的数量。
我究竟做错了什么?
我还尝试使用上面的查询来获取用户,它返回一个相同用户的数组,根据他们有多少狗重复多次。
联接将返回用户具有多个关联的所有重复行...
例如,如果用户 U1 有一条狗,而用户 U2 有两条狗,则连接将返回总共三行......所以不要使用连接,而是尝试使用包含选项......
有关更多信息,请参阅此 Railscast,http: //railscasts.com/episodes/181-include-vs-joins ...