From: Tanner Burson Date: 2006-03-09T05:50:41+09:00 Subject: Re: Newbie: Rails Controller Attribute Scope ------=_Part_3627_1815098.1141851025760 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On 3/8/06, tim.hennekey@gmail.com wrote: > > I'm having a hard time figguring out what is wrong with my controller. > I create an attribure, @processes in the method index. I then want to > access the attribute in the same class, in another method > process_status. I get an error: > > NoMethodError in Processes#process_status > You have a nil object when you didn't expect it! > You might have expected an instance of Array. > The error occured while evaluating nil.sizeRAILS_ROOT: > ../script/../config/.. > > So it looks to me that the instance of ProcessController is changing > and the attribute is nil? Is there a way around this? Why does Rails > create a new controller for each invocation of a method? > > > This is probably better answered on the Rails list, but I'll take a shot. = I assume by new invocation of a method, you mean new request, correct? If so= , then the answer is simply because on each request the entire rails environment is setup, and torn down. For any value to survive between requests it needs to either be in the flash, session, request, or external storage. This is probably a somewhat surprising behavior if you come from = a servlet world, but in the PHP or PERL world, this is fairly common. -- =3D=3D=3DTanner Burson=3D=3D=3D tanner.burson@gmail.com http://tannerburson.com <---Might even work one day... ------=_Part_3627_1815098.1141851025760--