如何建立三个模型关联?

时间:2013-08-02 15:23:52

标签: ruby-on-rails ruby-on-rails-3 associations

我是rails的新手,我想知道我对如何设置以下关联的直觉是否正确。

我有合作伙伴主题需要与其关联的默认音频主题。音频主题然后有许多与之相关的歌曲。因此,音频主题将有多首歌曲,多个合作伙伴主题将具有相同的音频主题。

我应该像以下一样进行设置吗?

合作伙伴主题: has_one:audio_theme has_many:歌曲,通过:: audio_theme

音频主题: has_and_belongs_to_many:partner_themes has_many:歌曲

歌曲: belongs_to:audio_theme has_and_belongs_to_many:partner_themes,通过:: audio_theme

如果模型已经存在但关联没有,那么我应该如何设置所有这些关联的迁移呢?

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为你可以更简单地设置它 - 就像这样:

Audio.rb

has_many :PT
has_many :songs

Partner.rb

belongs_to :AT

Song.rb

belongs_to :AT

您无需担心迁移,只需将该代码放入模型中即可进行设置。例如,要访问ID为33的歌曲,您可以使用audio.songs.find(33)