ActiveRecord多型關聯

2021-08-03 13:16:20 字數 481 閱讀 8405

專案中經常會有這樣的情況,乙個模型是多個模型的子模型

比如picture可以是user也article的子模型

picture belongs_to user

picture belongs_to article

這個時候可以建立多型管理

class picture belongs_to :imageable,polymorphic: true

end這樣對於user article而言,仍然和普通has_many沒有區別,擁有pictures方法

而對於picture物件,只能通過呼叫imageable獲取父物件,有可能是user也有可能是article

賦值如下

pic.imageable = user.first

pic.imageable = article.first

article.pictures = [pic]

user.pictures = [pic]

為啥不用ActiveRecord

首先,ar的改進之一是用特性來替換對映檔案。稱這樣能減少 提高開發效率,但是用 nhibernte 大部分人也不會手寫 而是通過工具生成,這樣這點其實優勢不大。不可否認這樣做在修改時更方便,不用修改兩個檔案 dry 但是缺點也很明顯,特性不可能完全對映配置檔案,否則特性會把類弄的很亂,這也使 ar只...

Java多型細節與instanceof關鍵字

無繼承,無多型 多型作為oop三大特性之一,在現實生活中,表現為乙個物件可以有多種形態 oop語言中也就是乙個物件對應著不同型別,的直接體現在於父類或者介面的引用指向其子類的物件 比如下面新增其他具體動物類,都可以實現eat 方法,父類引用型變數繫結通過不同的物件呼叫同名的不同方法 比如每個具體的f...

ActiveRecord學習(六) 總結

為方便大家學習activerecord,現將有關文章整理如下,希望對大家有多幫助,同時希望ar學習者能多多交流,多談談自己學習過程中的體會。官方 terrylee castle activerecord學習實踐 1 快速入門指南 castle activerecord學習實踐 2 構建配置資訊 ca...