私はレールにかなり慣れていません。私は、次のような2つのモデル間の関係を作成するための最も効率的な方法を見つけようとしています。
- ユーザーは多くの曲を「お気に入りに追加」できます
- 曲には所有者がいます。
これが私が考えていることです。それは意味がありますか?
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]