比方說,我們有這些模型與包括基於類型
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