我对rails很陌生。我试图找出在两个模型之间建立关系的最有效方法:
- 用户可以“收藏”许多歌曲
- 一首歌有一个所有者。
这就是我想做的事情。是否有意义 ?
class User < ActiveRecord::Base
has_many :songs #songs this user has favorited
end
class Song < ActiveRecord::Base
belongs_to :user #the user whom submitted this song
end
我对这种方法的担忧是,我不确定对数据库中的每首歌曲进行查询以找出特定用户拥有哪些歌曲的效率。我应该以不同的方式思考这个问题吗?
顺便说一句,有没有一种方法可以让我调用与模型名称不同的属性。因此,即使模型仍然是“歌曲”,User.find(1).songs[0]
我也不能说。User.find(1).favorites[0]