Really confusing issue involving ActiveRecord and a NoMethodError


#1

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!


#2

On Nov 3, 2:37 pm, cdubd removed_email_address@domain.invalid 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
I can interact


#3

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


#4

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


#5

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