使用三个参数连接两个表的导轨

问题描述:

首先我要使用Psql,如果有帮助,可能没有关系。使用三个参数连接两个表的导轨

我有两个表,(他们有插图中模型的has_many)

# models 
RegUser(id, Email, Name) 
Booking(id , Event_id, Reg_user_id) 

我如何去了解这两个连接在一起,以便查看事件40时,注册用户针对该事件将显示,其基本上都是从经过的PARAMS连接两个两个表一起(我相信!)

继承人我在过去

@reg_usr = RegUser.where(event_id: params[:id]) 

使用的代码我们感动将event_id分配给另一个表并将其从注册表中删除。

+0

创建为reg_users您的活动模型的has_many关系,所以像: '的has_many: reg_users,通过:预订' – Doctor06

你应该有如下关系:

class Event < ActiveRecord::Base 
    has_many :bookings 
    has_many :reg_users, through: :bookings 

class RegUser < ActiveRecord::Base 
    has_many :bookings 
    has_many :events, through: :bookings 

class Booking < ActiveRecord::Base 
    belongs_to :event 
    belongs_to :reg_user 

然后你就可以简单地做:

@event = Event.find(params[:id]) 
@reg_users = @event.reg_users # returns the reg_users associated to the Event 
+1

也许值得一提的是,如果你打算枚举记录并使用来自reg_users的属性,以防止出现N + 1问题,请使用includes。 –