Accessing the instance variable in another method

Hi,
I am new to Rails.I tried developing a basic quiz application.Please
help me out in my doubt.Thanks in advance

<% CODE %>

class QuizController < ApplicationController

def index

i have retrieved the first five questions from the database for

displaying the #question to user
@quiz=Quiz.find(:all,:limit=>5)

end

def report

end

this method checks the answer and gives score

def checkanswer

here i want to access the @quiz object which is a set of questions i

have #retreived from the database.Hot to access it?
end

end

Subashini K. wrote:

Hi,
I am new to Rails.I tried developing a basic quiz application.Please
help me out in my doubt.Thanks in advance

<% CODE %>

class QuizController < ApplicationController

def index

i have retrieved the first five questions from the database for

displaying the #question to user
@quiz=Quiz.find(:all,:limit=>5)

You should really call this variable @quizzes, so it will be clear that
it contains an Array of Quiz objects, not just one.

end

def report

end

this method checks the answer and gives score

def checkanswer

here i want to access the @quiz object which is a set of questions i

have #retreived from the database.Hot to access it?

You’ll need to retrieve the records again, or pass them in from params
or the session. Instance variables do not persist between controller
method calls (because the controller is freshly instantiated each time a
request is made).

end

end

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

Subashini K. wrote:

Hi,
I am new to Rails.I tried developing a basic quiz application.Please
help me out in my doubt.Thanks in advance

<% CODE %>

class QuizController < ApplicationController

def index

i have retrieved the first five questions from the database for

displaying the #question to user
@quiz=Quiz.find(:all,:limit=>5)

end

def report

end

this method checks the answer and gives score

def checkanswer

here i want to access the @quiz object which is a set of questions i

have #retreived from the database.Hot to access it?
end

end

hi Subashini,

I think you can use @quiz variable by making it a class variable as
@@quiz or a global variable $quiz.

might help,

Saurabh

On Tue, Sep 22, 2009 at 8:51 PM, Saurabh P. <
[email protected]> wrote:

hi Subashini,

I think you can use @quiz variable by making it a class variable as
@@quiz or a global variable $quiz.

Certainly, a wrong way to do it. Don’t do it (at least in rails controller)

As suggested earlier, you should pass ids in params or store in session
to
retrieve in your check_answer method.

might help,

Saurabh

Posted via http://www.ruby-forum.com/.


अभिनव
http://twitter.com/abhinav

Hi –

See my answer on ruby-talk.

David


David A. Black, Director
Ruby Power and Light, LLC (http://www.rubypal.com)
Ruby/Rails training, consulting, mentoring, code review
Book: The Well-Grounded Rubyist (The Well-Grounded Rubyist)

Saurabh P. wrote:
[…]

hi Subashini,

I think you can use @quiz variable by making it a class variable as
@@quiz or a global variable $quiz.

DON’T DO THAT! That will cause other problems.

might help,

Saurabh

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]