undefined method `generated_methods'

i m getting this error........

undefined method `generated_methods' for "chop":String

c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/attribute_methods.rb:188:in
`method_missing'

app/controllers/chops_controller.rb:60:in `show'

Manish Nautiyal wrote:

app/controllers/chops_controller.rb:60:in `show'

----------------------------------------------------------------
here is the function show
def show
  :
end

Which is line 60 (where the error is)?

What are the params passed into the action when it fails (shown in your
log file)? What happens when you run this line (below) from the
application console?

line 60 is ------->
@chop.views = @chop.views.next

Manish Nautiyal wrote:

line 60 is ------->
@chop.views = @chop.views.next

What params were passed in when you get the error? In particular,
params[:id]?

In the application console, run this replacing "params[:id]" with the
appropriate value from above:

@chop = Chop.find(params[:id], :include => [:song])

What does it display?
What is the value of @chop.views?
What is the value of @chop.views.next?

Is "views" an association in the Chop model? If so, what is the related
model? If not what is the database type? Are there any relevant
setters/getters for the Chop model.

Manish Nautiyal wrote:

In params[:id] = 567 is passed. 567 is the id of music in table.

I am new to ROR so i dont know how to run application console. so please
guide me.

Ah. Then you are in for a pleasant surprise. :slight_smile:

The application console is one of the most amazingly useful parts of
Rails. To access it, you need a command window (a terminal on
UNIX/MacOS or a DOS window on Windows). If you are using Instant Rails
on Windows, then select "Open Ruby Console Window" from the "Rails
Applications" menu option.

Change directory so you are in the top level of your application. Then
run the command:

ruby script/console

If you are running an older dumb(er) version of Windows it may want you
to use backslash instead of forward slash there (script\console).

This will load your development application and allow you to interact
with it. It is like running "irb" (the interactive Ruby environment)
with your Rails application already loaded.

You can then run any command which accesses your models. For example,
you can run:

@chop = Chop.find(567, :include => [:song])

and it will extract this item from the database. After each command is
run, the value of the command is displayed. If you just enter a
variable name, it will display its value, etc.

There's a lot more you can do, too, as you have access to the routing
engine to see how URLs are mapped, etc and much more, but to start with
it is very useful to play with your models and see how they are working.
Any database access will be logged in your log file.

Use "quit" (or Ctrl-D) to exit.

Your error message indicates that at some point you have the String
"chop" which Rails is trying to generate methods for. If you enter the
following at the console:

@chop.views
@chop.views.next

you will see what Rails is trying to do when executing the line:

@chop.views = @chop.views.next

It should give you some good clues to the actual problem.

Thx Bush for u r tips........
its were really amazing and new for me.

many many many thx 1st of all.

Now
when i run ---@chop = Chop.find(567, :include => [:song])
i got all the data from the database realted with it.

and when i run........@chop.views = @chop.views.next
NoMethodError: undefined method 'columns_hash' for "chop"

this type of error i m getting.........

Manish Nautiyal wrote:

and when i run........@chop.views = @chop.views.next
NoMethodError: undefined method 'columns_hash' for "chop"

For some reason, you have a string ("chop") where Rails is expecting you
to have a model by the look of it.

After you get the value from:

@chop = Chop.find(567, :include => [:song])

what is the value of @chop and @chop.views? Can you post these 2 values
and it might be clearer what is happening?

Mark Bush wrote:

Manish Nautiyal wrote:

and when i run........@chop.views = @chop.views.next
NoMethodError: undefined method 'columns_hash' for "chop"

For some reason, you have a string ("chop") where Rails is expecting you
to have a model by the look of it.

After you get the value from:

@chop = Chop.find(567, :include => [:song])

what is the value of @chop and @chop.views? Can you post these 2 values
and it might be clearer what is happening?

When i write
@chop ........i get the value--->nil
@chop.views....... i get the error---->NoMethodError: You have the nil
object when you didn't expect it! The error occured while evaluating
nil.views from (irb):1

tht its...

but when i run @chop = Chop.find(567, :include => [:song])

i get whole value from database. its very big so i cannt paste here.

Manish Nautiyal wrote:

@chop.views....... i get the error---->NoMethodError: You have the nil

What is this value (of @chop.views) immediately after running:

@chop = Chop.find(567, :include => [:song])

That is, what is the value of the "views" attribute of this particular
Chop object?

Manish Nautiyal wrote:

@chop.views....... i get the error---->NoMethodError: You have the nil

What is this value (of @chop.views) immediately after running:

@chop = Chop.find(567, :include => [:song])

That is, what is the value of the "views" attribute of this particular
Chop object?

While we're at it, what is views? An attribute, an association, a method computing some value ?

Fred