Album
現在、 whichというモデルがありhas_many :songs
ます。ユーザーが曲をあるアルバムから別のアルバムに移動できるようにしたいと考えています。Railsコンソールをいじってみると、
song.album_id=2
song.save
正常に動作しますが、これが実際のアプリケーションに適用する正しい方法であるかどうかは疑問です。これを行う適切な方法はありますか?
Album
現在、 whichというモデルがありhas_many :songs
ます。ユーザーが曲をあるアルバムから別のアルバムに移動できるようにしたいと考えています。Railsコンソールをいじってみると、
song.album_id=2
song.save
正常に動作しますが、これが実際のアプリケーションに適用する正しい方法であるかどうかは疑問です。これを行う適切な方法はありますか?
@album = Album.find_by_id(10)
#This is the album to move song
@song = Song.find_by_id(100)
#This is the song to be moved
@song.album = @album
@song.save
ここで珍しいことは何もありません:
song.album_id=2
# or
song.album = @album
どちらも仕事をしています。
これらを持つことによって:
album has_many :songs
song belongs_to :album
あなたはこれを行うことができます:
#find your album, by params[:id] or any other means you wish
album = Album.find(params[:id])
#assign it to the song
song.album = album
このようにして、曲を割り当てる前にアルバムが実際に存在することを確認します