2011-10-07 18 views
5

Bu kodu vardır çalışmaz:Raylar flaş: haber

def create 
    login(params[:email], params[:password]) 

    if current_user 
    flash[:notice] = "Welcome back #{current_user.email}" 
    return redirect_to_first_page 
    else 
    flash[:notice] = "Email or password is wrong. Try again !" 
    redirect_to root_url 
    end 
end 

giriş flaş ayarlanır başarılıdır ve ilk sayfaya yönlendirme yapılır. Bu bölüm çalışıyor. İkinci kısım flaş uyarı mesajını ayarlamıyor. Sonra, sayfa görüntülendiğinde, flaştan bir mesaj gösterilmez. Farklı olan, hiçbir şey gösteremediğim ama hala hiçbir şey göstermediğim bir şey var. Denetleyicimde flash_notice gibi bir yardımcıya sahibim. Bunun nedeni, flaşın her zaman görünümde boş olması, ancak denetleyicide erişilebilir olmasıdır. görünümünde ben sadece bir satır vardır: Ben rayları 3,1

+0

'redirect_to root_url, Does: => "! E-posta veya parola yanlış Tekrar deneyin"' çalışmak fark? – Zabba

+0

Hayır. Aynı davranışa sahiptir. – Mihai

+0

Yalnızca "flash_notice" yerine "uyarı" kullanın – Hock

cevap

7

Chris Drappier doğrudur kullanıyorum

<%= flash_notice %> 

, flaş karma yalnızca bir istek için akımdır. Ben gerektiğinde params söz konusu flaş tutmak ister Şahsen

flash.keep[:notice]="This message will persist"

sahip bir "tutmak" yöntemi çağırabilirsiniz. Korkunç ayrıntılar burada:

http://guides.rubyonrails.org/action_controller_overview.html#the-flash