我試圖創建Rails範圍,讓我來構造一個父嵌套模型 - 如下子模型關聯:Rails的選擇爲「使用範圍
{
id: 1,
...other_child_attrs,
parent: {
id: 2,
...other_parent_attrs
}
}
我能「注入」的在child
parent
屬性通過使用以下查詢:
scope :include_parent, -> { Child.joins(:parent).select('childs.*, parents.*') }
的問題是,父母的嵌套屬性在同一水平作爲孩子的屬性注入(這可能會導致衝突,因爲一些孩子的屬性是孩子重複 - id
,created_at
等):
{
id: 2, // Notice there's a parent - child id collision
...other_child_attrs,
...other_parent_attrs
}
是否有可能實現上述結構與單獨的活動記錄/純SQL(解釋,而不必依賴於序列化寶石,as_json
等)?