ruby on rails 学习---终于搞明白多态,大家不明白的话,可以一起交流下

一、什么叫多态关联?
“多态关联”。在多态关联中,在同一个关联中,模型可以属于其他多个模型。例如,收藏模型可以属于医院、医生、药品多个模型

二、收藏(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 可以获取父对象的名字

六、创建收藏的逻辑:待续,可以一起讨论




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值