devise_token_auth 導入時のエラー解決とモデル作成

プログラミング
スポンサーリンク

概要

  • 認証機能の追加のため、devise_token_auth をインストール
  • devise_token_auth を使ったモデルの作成方法
  • 実装時のエラー解決

実装内容

  • devise_token_auth gemの追加
  • devise_token_auth を使ったモデルの作成
 gem 'devise_token_auth'

下記をGemfileに追加し、

$ bundle install

インストール。

インストールが完了したら

次に devise_token_auth を使ったモデルの作成をしていきます。
今回はUserモデルを作るので、

$ rails g model User

コマンドを実行。

、、、、、、、、

ではなく、

devise_token_authを用いてモデル作成するには専用のコマンドがあります。

$ rails g devise_token_auth:install モデル名 パス

こちらを使用しないと、

  • config/initializers/devise_token_auth.rbファイルの自動作成
  • route.rbへのコード追加
  • devise_token_auth 用のmigrationファイル

が自動生成されないので注意です。

今回はUserモデルを作るので

rails g devise_token_auth:install User auth

こちらのコマンドを実行し、migrate。

$ rails db:migrate

実行するとエラーが発生。

NoMethodError: undefined method `devise' for User (call 'User.connection' to establish a connection):Class

下記のエラーが出たので

NoMethodError: undefined method `devise' for User (call 'User.connection' to establish a connection):Class

app/models/user.rb ファイルに

extend Devise::Models

コードを追加します。

class User < ApplicationRecord
  extend Devise::Models

  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
  include DeviseTokenAuth::Concerns::User
end

全体像はこんな感じになるとおもいます。

$ rails db:migrate

再度migrateし、完了です(^^)

参考文献

まとめ時間20分

コメント

タイトルとURLをコピーしました