Rails STI - 子类中的自定义关联

Woj*_*ski 3 activerecord sti

class Upload < ActiveRecord::Base
    has_many :comments
end

class Gallery < Upload
    has_many :images
end

class MusicAlbum < Upload
    has_many :audio_tracks
end
Run Code Online (Sandbox Code Playgroud)

这应该按预期工作吗?Gallery 和 MusicAlubm 模型是否会从其父模型(上传)继承 :comments 关联并添加自己的模型?

alo*_*ony 5

是的,模型只是类,当继承它们时,它们会从父类中获取所有方法。因此,由于GalleryMusicAlbum都是Upload模型的后代,因此它们将具有has_many :comments关联,并且都将从uploadsdb 表中获取数据(该表需要有一type列来支持此模型的 STI)

可以在此处找到一个不错的简单 STI 示例