반응형
Devise-이메일을 보내지 않고 확인 된 사용자 계정을 만드시겠습니까?
나는 facebook과 고안을 통합했다. 이제 사용자가 자신의 페이스 북 계정으로 로그인 한 후 사용자 계정을 만들면
user = User.create(:email => data["email"],
:password => Devise.friendly_token[0,20])
user.confirmed_at = DateTime.now
user.save!
계정이 확인 되었음에도 불구하고 확인 이메일은 여전히 실행됩니다. 이메일 실행을 어떻게 끌 수 있는지 아십니까?
확인 콜백은 생성 후에 발생하므로 confirmed_at
수동으로 설정하기 전에 예제의 1 행에서 발생합니다 .
의견에 따르면 가장 올바른 방법은이 목적으로 제공된 방법을 사용하는 것 #skip_confirmation!
입니다. confirmed_at
수동 설정 은 작동하지만 제공된 API를 우회하므로 가능하면 피해야합니다.
따라서 다음과 같습니다.
user = User.new(user_attrs)
user.skip_confirmation!
user.save!
원래 답변 :
인수 confirmed_at
와 함께 전달하면 create
계정이 이미 "확인"되었는지 여부에 대한 테스트는 해당 날짜가 설정되었는지 여부를 확인하는 것이므로 메일을 보내지 않아야합니다.
User.create(
:email => data['email'],
:password => Devise.friendly_token[0,20],
:confirmed_at => DateTime.now
)
또는 사용자 레코드를 작성 하는 new
대신 사용 create
하십시오.
이메일 전송을 막으려면 다음 #skip_confirmation_notification
과 같이 사용할 수 있습니다 .
user = User.new(your, args)
user.skip_confirmation_notification!
user.save!
문서 보기
after_create / after_update 확인 / 재확인 알림 이메일 전송을 건너 뜁니다. #skip_confirmation!과 달리 기록에는 여전히 확인이 필요합니다.
반응형
'Program Tip' 카테고리의 다른 글
C에서 참과 거짓 사용 (0) | 2020.12.10 |
---|---|
쉼표가있는 숫자를 소수점으로 부동 소수점으로 변환 (0) | 2020.12.10 |
Android Webview에서 JavaScript가 작동하지 않습니까? (0) | 2020.12.10 |
Vim으로 괄호로 묶기 (0) | 2020.12.10 |
MKMapView에서 사용자 위치 주변에 반경 1000m의 원을 그립니다. (0) | 2020.12.10 |