Really confusing issue involving ActiveRecord and a NoMethodError

1 view
Skip to first unread message

cdubd

unread,
Nov 3, 2008, 9:37:58 AM11/3/08
to Ruby on Rails: Talk
Hey Everyone,

I have been working on a project where I process an XML file that
contains data about a music playlist, and I use 3 models: Playlist,
Artist, and Song. Each model is mapped to a table in my database, and
when my app processes the XML file, it will populate the database
accordingly.

The issue I have is that the Artist class and the Song class seem to
be undefined, even though they absolutely are defined. I can interact
with the Playlist class just fine, and create new entries in the
database, but for some reason, when I try and create a new instance of
the Artist class, or the Song class I get the following error:

undefined method `create' for UploadController::Artist:Class

I decided to check this out using the Console, and I am able to create
a new instance of the Artist class, and populate the database in the
console, so the issue only resides in my web application.

Could I be missing some small piece of trivial information? I was
under the impression that I could access all of the models from any
controller I am using, but I can only access a single model at the
moment.

Any help would be great, this issue is driving me crazy.

Thanks!

Frederick Cheung

unread,
Nov 3, 2008, 9:48:55 AM11/3/08
to Ruby on Rails: Talk


On Nov 3, 2:37 pm, cdubd <cdub...@gmail.com> wrote:
> Hey Everyone,
>
> I have been working on a project where I process an XML file that
> contains data about a music playlist, and I use 3 models: Playlist,
> Artist, and Song. Each model is mapped to a table in my database, and
> when my app processes the XML file, it will populate the database
> accordingly.
>

What is in your upload controller ?

> The issue I have is that the Artist class and the Song class seem to
> be undefined, even though they absolutely are defined.

Actually it looks more like they have been defined a second time

Fred

cdubd

unread,
Nov 5, 2008, 11:43:31 AM11/5/08
to Ruby on Rails: Talk

> What is in your upload controller ?
>
> > The issue I have is that the Artist class and the Song class seem to
> > be undefined, even though they absolutely are defined.
>
> Actually it looks more like they have been defined a second time
>
> Fred
> I can interact

The following lines appear in my upload controller:

@playlistObject = Playlist.create(:name => n)

Artist.create(:name => @artistList[j])

Song.create(:name => song.name, :artist_id => artist.id, :minutes =>
song.minutes, :seconds => song.seconds)

The first line, where I create a new Playlist object works, but the
other two do not. I can post the entire code listing in the upload
controller if you think it would help.

-Casen

Frederick Cheung

unread,
Nov 5, 2008, 12:13:15 PM11/5/08
to rubyonra...@googlegroups.com

On 5 Nov 2008, at 16:43, cdubd wrote:
>
> The first line, where I create a new Playlist object works, but the
> other two do not. I can post the entire code listing in the upload
> controller if you think it would help.
>
Yes.

Fred

> -Casen
>
>
> >

cdubd

unread,
Nov 6, 2008, 6:07:12 AM11/6/08
to Ruby on Rails: Talk
I discovered the problem! When I was going to cut and paste the code,
I noticed some classes I defined from within the controller (as a
test) that I had later forgotten about completely because they were at
the bottom of a lot of code. And as you have probably guessed the
class names were Artist, and Song. I have been humbled!

Thanks again,

Casen
Reply all
Reply to author
Forward
0 new messages