0

我正在尝试使用一些虚假数据来植入我的数据库,但它没有按计划工作。该应用程序创建播放列表。我想我已经正确建模了,但是当我尝试为数据库播种时,我收到了这个错误:

rake aborted!
uninitialized constant Playlist::PlaylistSong

当我运行跟踪时,我发现它不喜欢下面的代码(特别是倒数第二行):

my_playlist = Playlist.create!(:name => "my_playlist")
10.times do |n|
  my_playlist.songs.create!(:name => "song #{n+1}")
end

我的模型设置为通过一个名为“playlist_songs”的表,播放列表包含许多歌曲,并且歌曲通过同一个表包含许多播放列表。

这是我的模型。

class Playlist < ActiveRecord::Base
  attr_accessible :name

  has_many :playlist_songs
  has_many :songs, :through => :playlist_songs
 end

class Song < ActiveRecord::Base
  attr_accessible :name

  has_many :playlist_songs
  has_many :playlists, :through => :playlist_songs
end

class PlaylistSongs < ActiveRecord::Base
  belongs_to :song
  belongs_to :playlist
end

我的理论是代码“my_playlist.songs”实际上是一个集合,这就是创建方法失败的原因。但我不确定。我对吗?如果是这样,我应该使用什么语法?

4

1 回答 1

3

您的型号名称不正确。PlaylistSongs应该PlaylistSong

于 2012-06-03T23:57:34.450 回答