0

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

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

这 - 据我了解 - 将调用歌曲模型并将艺术家模型和专辑模型引用传递给歌曲模型以形成 SQL 查询以从数据库中获取数据 - 因为我正在使用 ActiveRecord。

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

因此,如果我的模型中有一个函数,无论出于何种原因,它都能分辨出是谁创建了这个 Song 实例?

4

1 回答 1

0

这是太多的链接,它使事情变得过于复杂。

但是,假设您在 Song 模型中声明了和关系,您song.artist可以song.album检索歌曲的 Artist 和 Album 。belongs_to :albumbelongs_to :artist

但是,您可以简单地执行以下操作:

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

这样你就有了艺术家,你想要的他/她的专辑(在这种情况下是第一个)和它的歌曲都在不同的变量上,你可以单独处理它们。

于 2012-05-31T09:50:09.623 回答