Reputation: 34613
A typical rails controller might do something like this:
class FoosController < ApplicationController
def index
@foos = Foo.all
end
end
I understand rails well enough to know that @foos
will return an array of Foo objects, but that @foos
itself is an instance variable.
So which object does the instance variable belong to? Would it be an instance of the FoosController class? Is a different instance of this object created every time I access the index page? What about if I access the show page, where a new variable @foo
is introduced:
def show
@foo = Foo.find(params[:id])
end
Does this variable belong to the same object that @foos belongs to?
Upvotes: 5
Views: 1508
Reputation: 160191
FoosController
that's processing the current request.index
isn't called, @foos
won't be initialized, There is no @foos
instance variable when the show
action is hit in the code you show1.1 If you called index
from show
, then @foos
would be initialized and available on the page. Not that you should do this, because that's confusing concerns.
Upvotes: 7