2

私は標準のdeviseユーザ管理(ウェブページ用)とdevise_token_auth(API部分用)の両方を使用するプロジェクト(ruby '2.2.0'、rails '4.2.3'サービス)。モデル/ user.rbでは、すべてが正常に機能します。Rails - devise_token_authで作成したものは確認メールを送信しません

include DeviseTokenAuth::Concerns::User 

その後、ユーザー登録後に確認メールを送信しません。

この問題の解決に感謝します。

マイモデル/ user.rb:

class User < ActiveRecord::Base 
    # Include devise modules. 
    devise :invitable, :database_authenticatable, :registerable, 
      :recoverable, :rememberable, :trackable, :validatable, 
      :confirmable, :omniauthable 

    include DeviseTokenAuth::Concerns::User 

    enum role: [:user, :vip, :admin] 
    after_initialize :set_default_role, :if => :new_record? 

    def set_default_role 
    self.role ||= :user 
    end 
end 

はroutes.rbを:

Rails.application.routes.draw do 
    # standard devise routes available at /users 
    # NOTE: make sure this comes first!!! 
    devise_for :users 

    # token auth routes available at /api/v1/auth 
    namespace :api do 
    scope :v1 do 
     mount_devise_token_auth_for 'User', at: 'auth' 
    end 
    end 
end 

答えて

4

私はあなたに同じ問題を抱えて。この回避策は役に立ちました

class User < ActiveRecord::Base 
    devise :database_authenticatable, :registerable, 
      :recoverable, :rememberable, :trackable, :validatable, 
      :confirmable 

    include DeviseTokenAuth::Concerns::User 

    after_create :send_confirmation_email, if: -> { !Rails.env.test? && User.devise_modules.include?(:confirmable) } 

    private 
    def send_confirmation_email 
    self.send_confirmation_instructions 
    end 
end 
+3

残念ながら、このコードはAPIで登録すると確認メールを2回送信します。 – Kaktusiarz

+0

報告していただきありがとうございます。答えを更新します。 – Nathan

関連する問題