将用户表与user_follows表连接两次

时间:2012-02-13 15:14:05

标签: sql activerecord ruby-on-rails-3.1

我正在尝试查找当前用户正在关注的所有用户以及当前用户之后的用户。我在users_follow表中连接了以下用户。

来自我的用户模型:

has_many(:user_follows, :foreign_key => :user_id, :dependent => :destroy
has_many(:reverse_user_follows, class_name: 'UserFollow', :foreign_key => :user_b_id, :dependent => :destroy)

所以我想选择所有拥有user_follow条目的用户,其中user_id = current_user.id和user_b.id =-user-i-am-search,以及带有user_id = the-user-i的条目-am-searching-for和user_b.id = current_user.id

我可以使用activerecord执行此操作,还是我最好在SQL中执行此操作?

1 个答案:

答案 0 :(得分:0)

问题解决了:

User.all(:joins => [:user_follows, :reverse_user_follows ], :conditions => ["user_follows.user_b_id = ? AND reverse_user_follows_users.user_id = ?", current_user.id,  current_user.id])