Ruby on rails 3.1 如何使用活动记录执行此查询
我有三种型号Ruby on rails 3.1 如何使用活动记录执行此查询,ruby-on-rails-3.1,where,Ruby On Rails 3.1,Where,我有三种型号 Mailing has_many :trackers, :as => :trackable has_many :links Link belongs_to :mailing has_many :trackers, :as => :trackable Tracker belongs_to :trackable, :polymorphic => true “跟踪器”表有以下列 可跟踪\标识可跟踪\类型 假设我有一个id为1的邮件对象 我想获
Mailing
has_many :trackers, :as => :trackable
has_many :links
Link
belongs_to :mailing
has_many :trackers, :as => :trackable
Tracker
belongs_to :trackable, :polymorphic => true
“跟踪器”表有以下列
可跟踪\标识可跟踪\类型
假设我有一个id为1的邮件对象
我想获得所有类型为“链接”和“邮件”的可跟踪对象
mailing.trackers为我提供了与trackable_type=“mailing”trackable_id=1匹配的所有对象
我想从这两种可追踪类型的追踪者那里获得这封邮件的所有记录
当我这样做的时候
mailing.trackers.where(:tracker_id => mailing.links, :trackable_type => "Link")
我什么也得不到
如何获取这些数据
谢谢我可以这样做: mail.rb
Tracker.where("trackable_id = ? and trackable_type = ? or trackable_id in (?) and trackable_type = ?",self.id, "Mailing", self.links, "Link")
这将返回给定ID的所有邮件和链接类型记录。现在邮件与跟踪器关联,链接与跟踪器关联。但是,邮件和链接之间没有关联。你可能想研究一下邮件和链接之间的关系。如果你能详细阐述一下你想要的邮件和链接之间的关系,我们也许能给你更多的帮助。
Tracker.where("trackable_id = ? and trackable_type = ? or trackable_id in (?) and trackable_type = ?",self.id, "Mailing", self.links, "Link")