I am seeing some more differences between 1.2.x and 2.3.2 and they just baffle me. def some_method if params[:report][:salesmancode].to_s == '''' || ! params[:report][:periodno] flash[:message] = "You forgot to select an employee or pick a time period" redirect_to :back else blah, blah end render :layout => false end and I get a message about not being able to render/direct to more than 1 time. Why doesn''t ''redirect_to :back'' simply end processing and redirect the user? Is there some better way of doing this now? Craig -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.
On Wed, Jul 29, 2009 at 4:48 PM, Craig White<craigwhite-BQ75lA0ptkhBDgjK7y7TUQ@public.gmane.org> wrote:> > I am seeing some more differences between 1.2.x and 2.3.2 and they just > baffle me. > > def some_method > if params[:report][:salesmancode].to_s == '''' || ! > params[:report][:periodno] > flash[:message] = "You forgot to select an employee or pick a time > period" > redirect_to :backreturn false> else > blah, blah > end > render :layout => false > end > > and I get a message about not being able to render/direct to more than 1 > time. Why doesn''t ''redirect_to :back'' simply end processing and redirect > the user? Is there some better way of doing this now?-- Greg Donald http://destiney.com/
On Wed, 2009-07-29 at 16:49 -0500, Greg Donald wrote:> On Wed, Jul 29, 2009 at 4:48 PM, Craig White<craigwhite-BQ75lA0ptkhBDgjK7y7TUQ@public.gmane.org> wrote: > > > > I am seeing some more differences between 1.2.x and 2.3.2 and they just > > baffle me. > > > > def some_method > > if params[:report][:salesmancode].to_s == '''' || ! > > params[:report][:periodno] > > flash[:message] = "You forgot to select an employee or pick a time > > period" > > redirect_to :back > > return false---- that worked...doesn''t show my flash message so obviously something changed with flash. I thought it came from session but I can''t find it in the API. Craig -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.
Hi Craig, On Wed, 2009-07-29 at 14:48 -0700, Craig White wrote:> I am seeing some more differences between 1.2.x and 2.3.2 and they just > baffle me. > > def some_method > if params[:report][:salesmancode].to_s == '''' || ! > params[:report][:periodno] > flash[:message] = "You forgot to select an employee or pick a time > period" > redirect_to :back > else > blah, blahrender :layout => false> end > end > > and I get a message about not being able to render/direct to more than 1 > time. Why doesn''t ''redirect_to :back'' simply end processing and redirect > the user? Is there some better way of doing this now?It is a little confusing but the short answer is don''t count on render and redirect statements executing immediately. The best fix here is to put your render :layout => false inside your else clause. That way there''s no possibility of rendering twice. HTH, Bill