2011-10-07 41 views
5

tôi có mã này:Rails flash: thông báo không hoạt động

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 

khi đăng nhập thành công đèn flash được thiết lập và chuyển hướng đến trang đầu tiên được thực hiện. Phần này đang hoạt động. Phần thứ hai không cài đặt thông báo thông báo flash. Sau đó, khi trang được hiển thị, không có thông báo từ flash được hiển thị. Những gì khác nhau tôi đã cố gắng có

return redirect_to root_url 

nhưng không có gì vẫn không hiển thị bất cứ điều gì. Trong bộ điều khiển của tôi tôi có một người trợ giúp như flash_notice tất cả nó là trở lại flash [: thông báo]. Điều này là do đèn flash luôn trống trong chế độ xem nhưng có thể truy cập được trong bộ điều khiển. Trong giao diện i chỉ có một dòng:

<%= flash_notice %> 

Tôi đang sử dụng đường ray 3.1

+0

Liệu 'redirect_to root_url,: thông báo => "Email hoặc mật khẩu không sai Hãy thử một lần nữa.!" 'Làm việc? – Zabba

+0

No. Có hành vi tương tự. – Mihai

+0

Chỉ sử dụng 'thông báo' thay vì' flash_notice' – Hock

Trả lời

7

Chris Drappier là đúng, băm flash là hiện tại cho chỉ có một yêu cầu. Bạn có thể gọi một phương pháp "giữ" với

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

Cá nhân, tôi muốn giữ đèn flash trong câu hỏi trong params khi cần thiết. Các chi tiết đẫm máu đang ở đây:

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

Các vấn đề liên quan