繁体   English   中英

Rails 3多态关联:引用关联的belongs_to端的范围不起作用

[英]Rails 3 polymorphic associations: scopes on the belongs_to side that reference the association are not working

我有以下多态关联:

class Invite < ActiveRecord::Base
  belongs_to :inviteable, :polymorphic => true 

class Event < ActiveRecord::Base
  has_many :invites, :as => :inviteable, :dependent => :destroy

class Team < ActiveRecord::Base
  has_many :invites, :as => :inviteable, :dependent => :destroy

我正在尝试在特定于事件和未来事件的邀请上创建范围:

(in Invite.rb)
  scope :to_events, where('inviteable_type = ?', "Event")
  scope :to_future_events, lambda { self.to_events.joins("join events").where('events.starttime > ?', Time.now) }

to_events范围工作正常; to_future_events返回正确的邀请子集,但它返回每个邀请的许多副本。 知道为什么吗? 是否有更清洁/ Rails-ier方式来完成我想要完成的任务?

您必须为连接提供ON语句:

scope :to_future_events, lambda { self.to_events.joins("join events on events.id = invites.inviteable_id").where('events.starttime > ?', Time.now) }

否则,它会将每个邀请记录与每个事件记录连接起来。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM