2013-07-31 46 views
2

我正在嘗試在我的應用中執行某些操作,如果用戶未在90天內登錄,他們的帳戶將被設置爲未確認,並且會通過電子郵件發送給重新確認他們的電子郵件地址。手動取消確認設備中的用戶,導軌

我知道我可以重新發送此郵件:

Devise::Mailer.confirmation_instructions(@user).deliver 

我看到在架構這些相關領域 -

t.string "unconfirmed_email" 
t.string "confirmation_token" 
t.datetime "confirmed_at" 
t.datetime "confirmation_sent_at" 

將它們全部設置爲零,而未經證實的郵件回到正常的電子郵件使這項工作?

回答

1

根據設計代碼,清除confirmation_token並將unconfirmed_email設置爲原始電子郵件應重新發送確認。由於您有unconfirmed_email專欄,因此我假設您已在設備配置中啓用了可重新確認功能。

您可以從可確定模型中看到下面

after_update :send_reconfirmation_instructions, :if => :reconfirmation_required? 


    def send_reconfirmation_instructions 
    @reconfirmation_required = false 

    unless @skip_confirmation_notification 
     send_confirmation_instructions 
    end 
    end 

# Send confirmation instructions by email 
    def send_confirmation_instructions 
    ensure_confirmation_token! 

    opts = pending_reconfirmation? ? { :to => unconfirmed_email } : { } 
    send_devise_notification(:confirmation_instructions, opts) 
    end 

# Generate a confirmation token unless already exists and save the record. 
    def ensure_confirmation_token! 
    generate_confirmation_token! if should_generate_confirmation_token? 
    end 

    def should_generate_confirmation_token? 
     confirmation_token.nil? || confirmation_period_expired? 
    end 
相關代碼