it-roy-ru.com

Rails 4 - Разработать, пропустить уведомление о подтверждении: after_create

В Rails 4.2.0 я использую гем Devise для аутентификации - devise 3.4.1.

Письмо с подтверждением отправляется сразу после создания пользователя. Нам нужно пропустить это подтверждение по электронной почте и отправить собственное письмо со ссылкой для подтверждения. Пожалуйста, помогите мне решить эту проблему.

:confirmable используется в модели User.

15
Shruthi R

Вы можете попробовать это

@user.skip_confirmation!
@user.save

Вызовите skip_confirmation! перед сохранением записи пользователя.

Чтобы пропустить только уведомление о подтверждении, вы можете использовать skip_confirmation_notification!

@user.skip_confirmation_notification!
@user.save

Надеюсь это поможет!


К тому же

если вы хотите пропустить подтверждение в той же строке, не создавая переменную, и вам не нужно подтверждать этого конкретного пользователя, например, в seeds.rb

User.create(email: "#{role_name}@example.com",
            password: 'password',
            password_confirmation: 'password',
            confirmed_at: Time.now.utc, # skip confirmation)
27
Rajdeep Singh

Вместо того, чтобы отключать встроенное электронное письмо с подтверждением и отправлять собственное электронное письмо от devise, вы можете настроить подтверждающее электронное письмо от устройства.

Rails generate devise:views

а затем настроить подтверждение по электронной почте.

2
bunty

Вы можете сделать это:

это может пользовательский контроллер

@user = User.new(email: "#{role_name}@example.com",
        password: 'password',
        password_confirmation: 'password',
        confirmed_at: Time.now.utc, # skip confirmation)
@user.skip_confirmation!
@user.confirm
if @user.save
  MyMailer.confirmation(@user)
else
# your implementation
end

Смотрите документ https://github.com/plataformatec/devise/wiki/How-To:-Use-custom-mailer

0
Pedro Misael Canche Angulo