gpt4 book ai didi

ruby-on-rails - 关于在 Rails 中使用多态关联的问题

转载 作者:行者123 更新时间:2023-12-03 12:28:10 29 4
gpt4 key购买 nike

大家好吗我是 Rails 的新手,这是我的代码:

class Video < ActiveRecord::Base
belongs_to :videoable, :polymorphic => true
end

class Drummer < ActiveRecord::Base
has_many :videos,:as => :videoable
end


class Cymbal < ActiveRecord::Base
has_many :videos, :as => :videoable
end

从这一点开始,我可以使用 drummer.videos 获取所有属于鼓手的视频,但是我不能使用 video.drummer 来获取视频属于谁。

当然我可以使用 video.where(:videoable_id => '1', :videoable_type => 'drummer') 来找到确切的鼓手记录,但我认为必须有一种优雅的方式来做到这一点 rails ,对吗?

还有一个问题,我想改进这个关联,视频和鼓手,视频和铙钹应该是多对多的,有时一个视频中有超过 1 个鼓手或 1 个铙钹,所以这样做是有意义的这边走。我怎样才能做到这一点?

最佳答案

如果它始终是您想要的一对多关系(一个视频最多只能有一个鼓手),您可以将这些行添加到您的视频模型中:

belongs_to :drummer, :class_name => "Drummer", :foreign_key => "videoable_id"
belongs_to :cymbal, :class_name => "Cymbal", :foreign_key => "videoable_id"

Rails 将确定外键映射到哪个类并获取正确的条目。

关于ruby-on-rails - 关于在 Rails 中使用多态关联的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4452784/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com