2010-05-20 3 views
1

Ici, j'ai deux méthodes de commande:Rails 2.3.5: Flash [: avis] disparaît après l'appel redirect_to

def invite 
    if request.post? 
     begin 
     email = AccountMailer.create_invite(@user,url) 
     AccountMailer.deliver(email) 
     flash[:notice] = "Invitation email sent to #{@user.email}" 
     rescue 
     #mail delivery failed 
     flash[:error] = "Failed to deliver invitation" 
     end 

     redirect_to :action => :show, :id => @user.id 
    end 
    end 

et

def show 
    @title = "User #{@user.full_name}" 
    end 

Le problème est, quand j'envoie une invitation , et être redirigé vers ./show, je ne vois aucun message. Si je change redirect_to pour rendre, le message apparaît. Cependant, n'est-il pas prévu que Flash fonctionne dans les demandes suivantes? Par ailleurs, j'utilise Rails + Passenger setup, est-ce que cela peut être le cas pour que la requête redirigée passe à une autre instance d'application?

Répondre

1

Le bloc de secours est en train de régler le flash [: erreur], pas le flash [: remarque]. Est-ce que votre vue rend les deux?

+0

C'est, bien sûr. – xyzman

+0

En effet, j'ai pensé cela, et si un sauvetage se produit avant le flash [: avis], alors il ne sera jamais affiché. – Kezzer

1

googlé mieux et trouvé cette discussion:

http://www.mail-archive.com/[email protected]com/msg04284.html

La solution est là: remplacer le plug-in avec

script/plugin install git://github.com/ewildgoose/render_component.git -r rails-2.3 --force 

Bien que je ne l'utilise pas ActiveScaffold, il y a un code héritage dépend du plugin render_component. La mise à jour du plugin vers la version de branche a fonctionné, bien que je prévois de m'en débarrasser complètement.

Questions connexes