代码之家  ›  专栏  ›  技术社区  ›  zzawaideh

合并两个ActiveRecord查询结果

  •  21
  • zzawaideh  · 技术社区  · 14 年前

    我目前有两个活动记录查询,我想结合在一起

    joins("join relationships ON user_id = followed_id").
                  where("follower_id = #{user.id}")
    

    where(:user_id => user.id)
    

    基本上,我希望第二个的结果与第一个类似于 UNION SQL中的语句。在ActiveRecord中可以这样做吗?

    我宁愿使用工会,也不愿加入所有的工会 followed_id 在字符串中使用 IN sql中的子句。

    有什么想法吗?

    -----编辑------ 我正在寻找一种方法,让这个工作与懒惰的加载

    2 回复  |  直到 14 年前
        1
  •  12
  •   fantactuka    14 年前

    使用 relation & relation :

    Model.joins("join relationships ON user_id = followed_id").where("follower_id = {user.id}") & Model.where(:user_id => user.id)
    
        2
  •  30
  •   Corentin Geoffray    10 年前

    这对我很有用:

    Model.where(...) | Model.where(...)
    
        3
  •  0
  •   Houndjetode Noukpo Herve    3 年前

    Model.where(foo: 'bar').or.where(bar: 'bar')
    

    或者你也可以,只要坚持以下几点就行了:

    Model.where('foo= ? OR bar= ?', 'bar', 'bar')
    

    link