Devise - отправить письмо с подтверждением вручную - PullRequest
1 голос
/ 03 апреля 2012

У меня есть контроллер посадки, похожий на этот:

class LandingsController < ApplicationController
  # POST /landing
  def create
    @user = User.new(params[:user])

    respond_to do |format|
      if @user.save
        LandingsMailer.thanks(@user).deliver
        format.html { render :file => File.join(Rails.root, 'public', 'landing', 'thanks.html'),
                           :status => :created }
        format.json { render json: @user, status: :created }
      else
        format.html { redirect_to root_url }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end
end

А внутри User модели я переопределил следующий метод Devise:

def send_confirmation_instructions
  if invited_at.present?
    self.confirmation_token = nil if reconfirmation_required?
    @reconfirmation_required = false

    generate_confirmation_token! if self.confirmation_token.blank?
    self.devise_mailer.confirmation_instructions(self).deliver
  end
end

Таким образом, я хотел быотправлять подтверждение по электронной почте пользователю вручную, только когда user.invited_at не пусто (потому что я его пригласил).

Это должно работать ... но после публикации запроса на приглашение с контроллером Landing, яполучил письмо от Devise со ссылкой для подтверждения моего адреса электронной почты.Так же, как этот:

Добро пожаловать foo@bar.com!

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

Подтвердить мою учетную запись

Вы понимаете, почему?Спасибо.

Я использую Devise 2.0.4 на Rails 3.2.3 и Ruby 1.9.3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...