【问题标题】:Rails active record, how can I query in HABTM relationRails活动记录,我如何在HABTM关系中查询
【发布时间】:2018-03-20 19:15:33
【问题描述】:

我有 2 个具有 HABTM 关系的模型

User

has_and_belongs_to_many :rooms

Room

has_and_belongs_to_many :users

我还创建了迁移以加入这样的表

create_join_table :users, :rooms do |t|
      t.index [:user_id, :room_id]
      t.index [:room_id, :user_id]
end

我想查询用户A的房间中包含用户B的user_id的房间。我该怎么做?

【问题讨论】:

    标签: ruby-on-rails activerecord has-and-belongs-to-many


    【解决方案1】:

    我不确定您是否可以在单个 SQL 调用中执行此操作,但听起来您想要两个集合的并集。

    UserA.rooms & UserB.rooms
    

    这应该会为您提供两个用户共享的房间。

    【讨论】:

      【解决方案2】:

      这应该可以工作

      user_b = User.find(id: 123) #or id of user b
      user_a = User.find(id: 234) #or id of user a
      
      user_b.rooms.joins(:users).where(users: {id: user_a.id})
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-01
        • 1970-01-01
        • 2021-10-24
        • 2022-07-26
        • 1970-01-01
        相关资源
        最近更新 更多