Metoda jest dostępna dla każdego modelu confirmable
.
@user = User.new params[:user]
@user.skip_confirmation! # Sets confirmed_at to Time.now, activating the account
@user.save
Konto użytkownika zostanie jednak uaktywnione. Jeśli nie chcesz tego, kontynuuj czytanie.
Devise używa warunkowych wywołań zwrotnych do wygenerowania tokena potwierdzenia i wysłania wiadomości e-mail. Połączenia zwrotne będą wywoływane tylko wtedy, gdy confirmation_required?
zwróci true
. Przedefiniować go od modelu:
def confirmation_required?
false
end
Będzie to jednak uczynić metoda active_for_authentication?
zawsze zwraca wartość true, ponieważ trwa, czy wymagane jest potwierdzenie pod uwagę. Musimy przedefiniować również to:
def active_for_authentication?
confirmed? || confirmation_period_valid?
end
W ten sposób konto pozostanie nieaktywne i nie zostanie wysłany e-mail z potwierdzeniem. Będziesz musiał ręcznie aktywować użytkownika dzwoniąc pod numer confirm!
lub po prostu ustawiając confirmed_at
na dowolną datę.
To dość hack, ale powinno działać.
Dla porównania: confirmable.rb
dziękuję. ale nie chcę, aby użytkownik mógł się logować. czy ustawienie użytkownika na potwierdzone pozwoli użytkownikowi na pewne logowanie? co to zrobi, po prostu zapobiegnie wysyłaniu e-maili? dzięki – AnApprentice
Również, gdy próbuję zapisać nowego użytkownika, jak wspomniano powyżej, otrzymuję FALSE na @ user.save .... oprócz e-maila, jakie inne pola są wymagane, aby zapisać użytkownika? – AnApprentice
Zaktualizowałem moją odpowiedź. Wymagane są wszystkie pola oznaczone jako nie puste na schemacie lub których obecność sprawdza poprawność modelu. Jeśli ich nie dostarczysz, aktywny rekord nie zapisze twojego obiektu. –