ruby on rails 學習---終於搞明白多型,大家不明白的話,可以一起交流下

Anson0727發表於2016-12-14
一、什麼叫多型關聯?
“多型關聯”。在多型關聯中,在同一個關聯中,模型可以屬於其他多個模型。例如,收藏模型可以屬於醫院、醫生、藥品多個模型

二、收藏(liking)——醫院(hospital)、醫生(physician)、藥品(medication)
1、新建模型liking:
2、belongs_to :likeable, polymorphic: true, counter_cache: :likes_count
3、新建模型hospital:
4、has_many :likings, as: :likeable
5、新建模型physician:
6、has_many :likings, as: :likeable
7、新建模型medication:
8、has_many :likings, as: :likeable

三、關聯之後的方法:
 在醫生、醫院、藥品模型上
1、@hospital.likings表示醫院收藏的集合
2、@physician.likings表示醫院收藏的集合
3、@medication.likings表示醫院收藏的集合
 在liking模型上:
1、@liking.likable可以獲取父物件

四、控制器
 def index
    @likings = current_user.likings.order('created_at desc').page params[:page]
  end

五、在檢視中:
[:micro, liking.likeable]可以生成http://localhost:3000/micro/physicians/486這樣的url

= liking.likeable.name 可以獲取父物件的名字

六、建立收藏的邏輯:待續,可以一起討論




相關文章