概要
- 認証機能の追加のため、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し、完了です(^^)
参考文献
- 実装の流れlynndylanhurley/devise_token_authToken based authentication for Rails JSON APIs. Designed to work with jToker and ng-token-auth. - lynndylanhurley/devise_token_auth
- エラー解決rake aborted!rake aborted! NoMethodError: undefined method `devise’ for User (call ‘User.connection’ to establish a connection):Class…
まとめ時間20分
コメント