2010-02-06 3 views
3

J'ai les deux méthodes d'action suivantes:Flash ne pas survivre à une redirection dans Facebook sur une application Rails

def index 
    puts "==index== flash: #{flash.inspect}" 
end 

def create 
    flash[:notice] = "Blah" 
    puts "==create== flash: #{flash.inspect}" 
    redirect_to(:action => :index) 
end 

index.fbml.erb contient ceci:

<%= button_to_with_facebooker "Blah!", :action => :create %> 

L'application est utilisée par Facebook . Je clique sur le bouton et le flash contient la notice pendant que create est en cours d'exécution, mais après il est de nouveau vide. Il ne survit pas à une redirection. Des idées ce qui se passe ici?

+0

Semble être un bug quelque part. Plus d'informations sur http://groups.google.com/group/facebooker/browse_thread/thread/db62cdab0171bc6d/e48d5c036ddc35c4?lnk=gst&q=flash#e48d5c036ddc35c4 et http://groups.google.com/group/facebooker/browse_thread/thread/cb7e27cb3095cca7/ed62a4345487d59f? lnk = gst & q = flash # ed62a4345487d59f – Pablo

Répondre

0

J'ai trouvé une solution de contournement. Lors de l'utilisation ActiveRecord pour stocker la session, ajouter

ActionController::Dispatcher.middleware.delete Rack::FacebookSession 
ActionController::Dispatcher.middleware.insert_before(
    ActionController::Base.session_store, 
    Rack::FacebookSession, 
    ActionController::Base.session_options[:key]) 

dans un fichier d'initialisation, comme config/initializers/session_store_fix_facebooker_session_key.rb

This has been done on by someone else before et he explained it on a message on the Facebooker group sur mais it doesn't work with the cookie session storage, Rail's default.

Questions connexes