更改模型对象的ID

时间:2012-04-18 06:15:26

标签: ruby-on-rails

我目前有一个名为Album的模型has_many :songs。我希望用户能够将歌曲从一个专辑移动到另一个专辑。在Rails控制台中乱搞,我发现了

song.album_id=2
song.save

工作正常,但是,我怀疑这是在真实应用程序中应用它的正确方法。有没有正确的方法来做到这一点?

3 个答案:

答案 0 :(得分:1)

这里没什么不寻常的:

song.album_id=2
# or
song.album = @album

两人都做好了自己的工作。

答案 1 :(得分:1)

通过这些:

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

通过这种方式,您可以在为其分配歌曲之前确保相册确实存在

答案 2 :(得分:1)

@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