使用三个参数连接两个表的导轨
问题描述:
首先我要使用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分配给另一个表并将其从注册表中删除。
答
你应该有如下关系:
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。 –
创建为reg_users您的活动模型的has_many关系,所以像: '的has_many: reg_users,通过:预订' – Doctor06