Rails关联模型中的“父”引用

时间:2012-05-31 09:27:33

标签: ruby-on-rails ruby

我的以下问题可能表明缺乏对Ruby,Rails甚至一般oOP概念中的工作方式的正确理解,并且相信我在询问之前经常思考和搜索,但我甚至无法形成正确的搜索查询以找到正确的答案,所以无论如何这里是我想要实现的......

song = Artist.first.albums.first.songs.first 

这 - 我的理解 - 将调用歌曲模型并将Artist模型和专辑模型引用传递给Song模型以形成SQL查询以从DB获取数据 - 因为我使用的是ActiveRecord。

真正的问题;有没有办法知道哪个艺术家和专辑称为歌曲模型?这在多对多关系中特别有用,我不想为专辑/艺术家传递额外的参考。

因此,如果我的模型中有一个函数,无论出于什么原因,它都可以告诉谁创建了这个Song实例?

1 个答案:

答案 0 :(得分:0)

链接过多而且过于复杂。

但是,您可以song.artistsong.album来检索歌曲的艺术家和专辑,假设您在自己的关系中声明了belongs_to :albumbelongs_to :artist关系歌曲模型。

但是,您可以这样做:

artist = Artist.first
album = artist.albums.first
songs = album.songs

通过这种方式,您可以拥有艺术家,他/她想要的专辑(在这种情况下是第一张专辑),并且歌曲都包含在不同的变量中,您可以单独处理它们。