I register a user in with an Ajax request after saving a user, and setting the flash[:notice] = "welcome message", I perform the rendering format.js { render :update do |page| page << "window.parent.Shadowbox.close();" #page.reload (?) page.redirect_to root_url) end } in my home page view, I have : <div id="content"> <% if flash[:notice] %><div class="notice" id="flash"><%= flash [:notice] %></div><% end %> but when displayed the notice doesn''t appear ... I need to perform manually a page reload in the Firefox browser to see the notice displayed... iI tried to insert a page.reload in the js rendering but it does not solve the problem... what are you advices ? thanks
Mukund
2009-Jun-29 12:29 UTC
Re: page doesn''t display flash[:notice] after redirect from rjs
Use flash.now instead of plain flash when you do the assignment. ------ from the API docs now() Sets a flash that will not be available to the next action, only to the current. flash.now[:message] = "Hello current action" This method enables you to use the flash as a central messaging system in your app. When you need to pass an object to the next action, you use the standard flash assign ([]=). When you need to pass an object to the current action, you use now, and your object will vanish when the current action is done. -------- On Jun 29, 3:18 pm, Erwin <yves_duf...-ee4meeAH724@public.gmane.org> wrote:> I register a user in with an Ajax request > > after saving a user, and setting the flash[:notice] = "welcome > message", I perform the rendering > > format.js { > render :update do |page| > page << "window.parent.Shadowbox.close();" > #page.reload (?) > page.redirect_to root_url) > end > } > > in my home page view, I have : > > <div id="content"> > <% if flash[:notice] %><div class="notice" id="flash"><%= flash > [:notice] %></div><% end %> > > but when displayed the notice doesn''t appear ... > > I need to perform manually a page reload in the Firefox browser to see > the notice displayed... > > iI tried to insert a page.reload in the js rendering but it does not > solve the problem... > > what are you advices ? > > thanks
erwin
2009-Jun-29 13:05 UTC
Re: page doesn''t display flash[:notice] after redirect from rjs
Thanks for your help I did it, it doesn''t solve this issue the notice is actually correctly set but the browser needs a manual refresh to display it a very small issue but taking me hours to solve ... On 29 juin, 14:29, Mukund <marut...-/E1597aS9LQAvxtiuMwx3w@public.gmane.org> wrote:> Use flash.now instead of plain flash when you do the assignment. > > ------ from the API docs > now() > Sets a flash that will not be available to the next action, only to > the current. > > flash.now[:message] = "Hello current action" > This method enables you to use the flash as a central messaging system > in your app. When you need to pass an object to the next action, you > use the standard flash assign ([]=). When you need to pass an object > to the current action, you use now, and your object will vanish when > the current action is done. > > -------- > > On Jun 29, 3:18 pm, Erwin <yves_duf...-ee4meeAH724@public.gmane.org> wrote: > > > > > I register a user in with an Ajax request > > > after saving a user, and setting the flash[:notice] = "welcome > > message", I perform the rendering > > > format.js { > > render :update do |page| > > page << "window.parent.Shadowbox.close();" > > #page.reload (?) > > page.redirect_to root_url) > > end > > } > > > in my home page view, I have : > > > <div id="content"> > > <% if flash[:notice] %><div class="notice" id="flash"><%= flash > > [:notice] %></div><% end %> > > > but when displayed the notice doesn''t appear ... > > > I need to perform manually a page reload in the Firefox browser to see > > the notice displayed... > > > iI tried to insert a page.reload in the js rendering but it does not > > solve the problem... > > > what are you advices ? > > > thanks
erwin
2009-Jun-29 21:05 UTC
Re: page doesn''t display flash[:notice] after redirect from rjs
found a solution.... but I have to understand why it runs... the issue was not the display of the flash notice in the home page, but the redirection to the home page from within the rjs file in my rjs file I need to write page << "window.parent.Shadowbox.close();" page << "window.parent.document.location.href = ''#{root_url}''" this close the Shadowbox window and redirect to the home page I cannot use the standard page.redirect_to root_url I beive it''s related to the Shadowbox displayed within an iframe.... On 29 juin, 14:29, Mukund <marut...-/E1597aS9LQAvxtiuMwx3w@public.gmane.org> wrote:> Use flash.now instead of plain flash when you do the assignment. > > ------ from the API docs > now() > Sets a flash that will not be available to the next action, only to > the current. > > flash.now[:message] = "Hello current action" > This method enables you to use the flash as a central messaging system > in your app. When you need to pass an object to the next action, you > use the standard flash assign ([]=). When you need to pass an object > to the current action, you use now, and your object will vanish when > the current action is done. > > -------- > > On Jun 29, 3:18 pm,Erwin<yves_duf...-ee4meeAH724@public.gmane.org> wrote: > > > I register a user in with an Ajax request > > > after saving a user, and setting the flash[:notice] = "welcome > > message", I perform the rendering > > > format.js { > > render :update do |page| > > page << "window.parent.Shadowbox.close();" > > #page.reload (?) > > page.redirect_to root_url) > > end > > } > > > in my home page view, I have : > > > <div id="content"> > > <% if flash[:notice] %><div class="notice" id="flash"><%= flash > > [:notice] %></div><% end %> > > > but when displayed the notice doesn''t appear ... > > > I need to perform manually a page reload in the Firefox browser to see > > the notice displayed... > > > iI tried to insert a page.reload in the js rendering but it does not > > solve the problem... > > > what are you advices ? > > > thanks