比方说,我们有这些模型与包括基于类型
class Message
belongs_to :messageable, polymorphic: true
end
class Ticket
has_many :messages, as: :messageable
has_many :comments
end
class User
has_many :messages, as: :messageable
has_many :ratings
end
class Rating
belongs_to :user
end
class Comment
belongs_to :ticket
end
现在我想要加载的所有邮件(已关联tickets
或users
),并渴望负载取决于类的类型,无论是comments
为tickets
和ratings
为users
当然Message.includes(:messageable).order("created_at desc")
将仅包括直接相关联的对象,但问题是如何包括从每个模型推导出不同的关联类型类型(即在这个例子中,如何急于加载comments for tickets
和ratings for users
)?
这只是一个简单的例子,但更复杂的情况下,我想为user
包含其他关联,以及如果该关联需要更多内容呢?
你找到一个解决办法? – 2013-03-26 08:25:41
我其实是手动做的。获取消息,并为每个消息类型提取与相应包含的关联,然后将它们重新加入消息数组中。这不是很漂亮,但它的工作 – 2013-03-26 08:57:58
分享你的答案? – coderVishal 2016-02-02 12:24:15