2013-09-23 52 views
8

Tôi đã thêm: xác nhận ứng dụng Rails của tôi sau đó. Vấn đề là khi tôi đăng ký sau khi thêm: confirmable tôi không được thông báo hiển thị sau khi đăng ký cho có nói với tôi những gì đã xảy ra, ví dụ:đưa ra: thêm thông báo sau khi đăng ký (có thể xác nhận)

You will receive an email with instructions about how to confirm your account in a few minutes. 

Tại sao không để ý xuất hiện và làm thế nào có thể Tôi thêm thông báo đó sau khi thêm: xác nhận?

Cảm ơn bạn đã trợ giúp

Trả lời

17

Thông báo không xuất hiện vì ý định chuyển hướng đến đường dẫn gốc có thể được bảo vệ bởi xác thực phát sinh. Khi bạn nhấn root_path, bạn sẽ được chuyển hướng trở lại trang sign_in (vì không thể đăng nhập vào người dùng vì nó chưa được kích hoạt). Bạn có thể xác minh bằng cách xem nhật ký phát triển của bạn sau khi bạn nhập thông tin người dùng và nhấn nút "đăng ký" - bạn sẽ thấy trong yêu cầu đăng nhập một người dùng đăng ký, sau đó yêu cầu điều hướng đến url gốc của bạn routes.rb) và sau đó chuyển hướng điều hướng đến trang sign_in do xác thực.

Trong khi chuyển hướng, tất cả các tin nhắn flash sẽ bị mất (vì tin nhắn flash chỉ hợp lệ cho yêu cầu tiếp theo) và khi bạn được chuyển từ root_path sang trang sign_in, bạn đang thực hiện yêu cầu. Vì vậy, bạn cần sử dụng flash.keep trên yêu cầu đầu tiên trước khi nó được chuyển hướng hoặc thay đổi đường dẫn after_sign_up để chuyển hướng không xảy ra. Tôi khuyên bạn nên thay đổi đường dẫn after_sign_up vì nó dễ dàng hơn và trông giống như một cách phù hợp để thực hiện nó.

Để làm điều đó, bạn cần phải sử dụng bộ điều khiển của riêng bạn cho đăng ký và thêm after_sign_up_path phương thức trả về url cho chuyển hướng:

# app/controllers/registrations_controller.rb 
class RegistrationsController < Devise::RegistrationsController 

    private 

    def after_inactive_sign_up_path_for(resource) 
    new_user_session_path 
    end 
end 

#config/routes.rb 
devise_for :users, :controllers => { :registrations => "registrations" } 

Tôi cũng khuyên bạn nên đọc câu hỏi tương tự như của bạn: Rails 3 and Devise: Redirecting to page following signup (confirmable)

+0

lớn, nhanh chóng , trả lời pro .. cảm ơn bạn! – Aljaz

+0

Cảm ơn. không có chi. –

+0

Cảm ơn câu trả lời của bạn. –