Rails polymorphic associations

Rails polymorphic associations,多型態連結,即一個model有可能和多個model有連結關係,白話一點就是,我們去看醫生,我們要先建立預約,然後護士按照預約名單來安排你和醫生會面。那個「預約」就是 polymorphic associations 關係。

假設,網站有兩個model,一個是群組,一個社群,會員可以參加社群,也可以參加群組,所以首先我來弄建立model

db/miragte/xxxxx.rb

join.rb

user.rb

group.rb

team.rb

以上雖然我們定義了大家的關係,但是我們還沒定義「參加」和「退出」的行為,team.rb和group.rb的參加行為都是一樣的,所以可以寫成在concerns,然後加入進去。

models/concerns/join_concern.rb

然後再加入到有參加行為的models
group.rb

team.rb

如此一來,這個關係就可以繼續沿用,日後如果會有別的model,例如活動,會議,行程,都可以用JoinConcern