diff --git a/lib/devise/models/confirmable.rb b/lib/devise/models/confirmable.rb index df774213..657cc162 100644 --- a/lib/devise/models/confirmable.rb +++ b/lib/devise/models/confirmable.rb @@ -50,6 +50,7 @@ module Devise # Send confirmation instructions by email def send_confirmation_instructions + generate_confirmation_token if self.confirmation_token.nil? ::Devise::Mailer.confirmation_instructions(self).deliver end diff --git a/test/models/confirmable_test.rb b/test/models/confirmable_test.rb index 94f8e618..ebff4edb 100644 --- a/test/models/confirmable_test.rb +++ b/test/models/confirmable_test.rb @@ -127,6 +127,14 @@ class ConfirmableTest < ActiveSupport::TestCase User.send_confirmation_instructions(:email => user.email) end end + + test 'should always have confirmation token when email is sent' do + user = new_user + user.instance_eval { def confirmation_required?; false end } + user.save + user.send_confirmation_instructions + assert_not_nil user.confirmation_token + end test 'should not resend email instructions if the user change his email' do user = create_user