Đây là tình huống của tôi, tôi sử dụng để cho phép người dùng tạo tài khoản trên trang web của tôi và quản lý xác thực của họ. Trong quá trình đăng ký, tôi cho phép khách hàng thay đổi một số tùy chọn , dẫn đến một tài khoản thực sự khác được tạo nhưng vẫn dựa trên cùng một tài nguyên người dùng cốt lõi. Tôi muốn chọn không gửi email xác nhận cho một số loại các loại tài khoản đó. Tôi không quan tâm nếu tài khoản không được xác nhận và người dùng không thể đăng nhập, điều đó không sao, không có pb với điều đó. Tôi sẽ làm như thế nào? Cảm ơn, AlexThiết lập: Có thể KHÔNG gửi email xác nhận trong các trường hợp cụ thể không? (ngay cả khi có thể xác nhận được kích hoạt)
Trả lời
Thực ra nó khá dễ dàng khi tôi đào sâu hơn một chút. Chỉ cần ghi đè lên một phương pháp trong mô hình tài khoản của bạn (hoặc bất cứ điều gì bạn đang sử dụng):
# Callback to overwrite if confirmation is required or not.
def confirmation_required?
!confirmed?
end
Đặt điều kiện của bạn và công việc của done!
Alex
tôi đã có thể làm điều gì đó tương tự với các chức năng:
registrations_controller.rb
def build_resource(*args) super if session[:omniauth] # TODO -- what about the case where they have a session, but are not logged in? @user.apply_omniauth(session[:omniauth]) @user.mark_as_confirmed # we don't need to confirm the account if they are using external authentication # @user.valid? end end
Và sau đó trong mô hình người dùng của tôi:
user.rb
def mark_as_confirmed self.confirmation_token = nil self.confirmed_at = Time.now end
Tôi không biết nếu lập mưu bổ sung này sau khi câu trả lời khác đã được nộp, nhưng mã cho điều này là ngay trong confirmable.rb
:
# If you don't want confirmation to be sent on create, neither a code
# to be generated, call skip_confirmation!
def skip_confirmation!
self.confirmed_at = Time.now
end
Lưu ý rằng bạn nên gọi điều này trước khi lưu người dùng, nếu không email "Xác nhận hướng dẫn" sẽ được gửi. – dukedave
Cũng có phương thức 'skip_reconfirmation!' Tương tự –
Bạn cũng có thể chỉ cần thêm dòng mã sau đây trong điều khiển của bạn trước tạo người dùng mới:
@user.skip_confirmation!
Nếu bạn đang quá tải 'create' action và sử dụng' super do | user | 'để tùy chỉnh, đã quá muộn để bỏ qua, hãy nghĩ rằng đã gửi email. Điều này nên đi trong 'build_resource', ví dụ. –
Nếu bạn chỉ muốn bỏ qua việc gửi email nhưng không làm xác nhận, sử dụng:
# Skips sending the confirmation/reconfirmation notification email after_create/after_update. Unlike
# #skip_confirmation!, record still requires confirmation.
@user.skip_confirmation_notification!
Nếu bạn không muốn gọi này trong mô hình của bạn với một callback ghi đè phương pháp này:
def send_confirmation_notification?
false
end
- 1. java: làm cách nào tôi có thể xác minh địa chỉ email hợp lệ mà không gửi email xác nhận?
- 2. Thiết lập - tạo tài khoản người dùng có xác nhận mà không cần gửi email?
- 3. Lệnh Margin có thể được thực thi ngay cả khi thiết lập thuộc tính Dock không?
- 4. Tôi có thể chặn xác thực UA của các trường "email" HTML5 không?
- 5. Tôi làm cách nào để có thể xác nhận lại email được gửi bằng JavaMail API?
- 6. Có thể nhận email qua JSON không?
- 7. Xác nhận Knockout đánh giá ngay lập tức khi tải
- 8. Có thể nhận mã thông báo thiết bị ngay cả khi Thông báo đẩy không được bật không?
- 9. max_input_vars thiết lập ngay cả khi nhận xét trong php.ini
- 10. Django - xác thực, đăng ký có xác nhận email
- 11. Có nhiều xác nhận xấu trong thử nghiệm đơn vị không? Ngay cả khi xích?
- 12. Trình kích hoạt máy chủ SQL có thể gửi cho tôi một email không?
- 13. Xác nhận Jquery, submithandler không hoạt động
- 14. Tôi có thể có macro C chấp nhận số tham số không xác định không?
- 15. Có thể gửi email tự động không?
- 16. Có thể nhận tất cả các phương thức hợp lệ cho một lớp Perl cụ thể không?
- 17. So sánh trình xác nhận luôn kích hoạt ngay cả khi mật khẩu giống nhau
- 18. ASP.NET MVC Ajax Post thực hiện OnComplete Ngay cả khi xác nhận không hợp lệ
- 19. Có thể xác nhận hợp lệ XML được trộn lẫn với JAXB 2.0 không?
- 20. TableLayoutPanel: Không thể nhận hàng nội dung có kích thước chính xác
- 21. không thể gửi email trên công cụ ứng dụng google
- 22. không thể nhận được responseText khi có lỗi 400
- 23. Có thể chấp nhận máy chủ gửi phản hồi HTTP trước khi nhận được toàn bộ yêu cầu không?
- 24. Có thể nhận được thiết lập riêng tư của tài sản thông qua phản ánh không?
- 25. org.hibernate.AnnotationException: Không nhận dạng xác định cho tổ chức - ngay cả khi nó được
- 26. Có thể nhận gcc để bỏ qua các tùy chọn dòng lệnh không xác định không?
- 27. Có thể nhận được một tài sản được trừu tượng và các thiết lập được ảo?
- 28. Có thể thêm liên kết vào tin nhắn flash khi được xác nhận không?
- 29. Thiết kế giản đồ khi người dùng có thể xác định các trường
- 30. Chuẩn SQL có xác định thứ tự xác nhận ràng buộc và kích hoạt kích hoạt không?
Các email sẽ không được gửi trong một resend_confirmation hoặc một send_reconfirmation, đó là hữu ích ... –
Wow .. Người đàn ông siêu mát mẻ! – knagode