Finally I could reproduce the bug in a freshly created Rails 3
application, requiring one by one the gems I used in my first
application. The bug occurs when both twitter and sg-ruby gems are
required from Gemfile. If only one of both is required, the bug
disappears. Reading through the code of both gems, I could not figure
out how the bug appears. So to avoid the bug I just switched from the
twitter gem to the grackle gem.

Florent

On 4 juil, 23:24, Florent2 <[email protected]> wrote:
> Hello,
>
> I have a Rails 3 beta 4 where flash messages are not cleared when they
> should be. Please note that on a freshly created Rails 3 beta 4
> application I do not face the problem. I searched for something flash
> specific in my application that could cause the problem, but I found
> nothing.
>
> In the home page controller action I set flash.now.notice = "hello".
> This flash message is correctly displayed on the home page.
>
> But when I request another page, the flash message is still displayed
> although I do not set a flash message in this other page controller
> action.
>
> In my application controller, I log the content of the
> session['flash'] object in a before filter and in an after filter.
> Here is what I get:
>
> 1. request on the homepage setting the flash message:
> - before filter: session['flash'] = nil
> - after filter   : session['flash'] = {:notice=>"hello"}
>
> 2. request on another page not setting the flash message:
> - before filter: session['flash'] = {"notice"=>"hello"}
> - after filter   : session['flash'] = {"notice"=>"hello"}
>
> I don't understand why the session['flash'] contains {"notice" =>
> "hello"} at the beginning of the request of the second page.
> The :notice key has correctly disappeared but a new key "notice" has
> appeared. That's what provokes the unwanted display of the flash
> message on the second request.
>
> I've looked into the ActionDispatch::Flash class and tried to log what
> happened in the sweep function
>  http://github.com/rails/rails/blob/master/actionpack/lib/action_dispa...
> The problem is that the key "notice" is not deleted as @used set
> contains :notice where the flash keys contains "notice".
>
> I could not figure out how and where in the code the flash object is
> reconstructed from the cookie session. Also, is it possible from the
> browser to read the content of the Rails cookie session to directly
> see how is the flash stored in the cookie?
>
> Any help or indication to further dig in my problem would be greatly
> appreciated :)
>
> Florent

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to