3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

devise_token_authを使おうとしたら依存関係でエラーが出た話

Last updated at Posted at 2021-01-30

#はじめに
Rails6のAPIモードでdevise_token_authを使用してログイン機能をもつアプリを作ってみようと思ったところ、bundle installでエラーを吐いた。

#エラー内容

Bundler could not find compatible versions for gem "rails":
  In snapshot (Gemfile.lock):
    rails (= 6.1.1)

  In Gemfile:
    rails (~> 6.1.1) x86_64-darwin-20

devise_token_auth x86_64-darwin-20 was resolved to 0.1.21.alpha2, which
depends on
      rails (~> 4.1.4)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

エラー文を読む感じrailsとdevise_token_authの依存関係が上手くいってないらしい。

調べたところ、devise_token_authはrails6.1より大きいとダメらしい。
参考:https://stackoverflow.com/questions/65865321/cant-install-devise-token-auth

That seemed to do it. Seems like devise_token_auth v1.1.4 needs rails >= 4.2.0, < 6.1, so I just specified gem 'rails', '6.0'.

#対処法
今回はRails6を使用できれば何でも良かったので、Railsのバージョンを6.0にすることで対応。

Gemfile.
gem 'rails', '~> 6.0'

Gemfileのrailsを上記のように6.0に修正してbundle update railsをすると依存関係の問題がなくなりインストールできる。

#追記
依存関係の問題がなくなったので、rails g devise:installしようとしたらまたエラーがでた。

cinfig/application.rb内に6.1を指定している箇所があるらしいのでそこを修正。

config/application.rb
class Application < Rails::Application
    config.load_defaults 6.0
    config.api_only = true
end

修正後にrails g devise:installしたら無事にインストールが完了した。

#追記2
rails sでサーバーを立ち上げようとしたところまたエラーを吐いた。

config.ru:6:in `block in <main>': undefined method `load_server' for #<アプリ名::Application:0x00007f953935ef00> (NoMethodError)
Did you mean?  load_seed

エラーを読むとload_serverというメソッドが存在しないと言われてるらしい。load_serverで調べたら6.1から6.0にダウングレードする場合はconfig.ruのload_serverは削除しないといけないらしい。

config.ru
# This file is used by Rack-based servers to start the application.

require_relative "config/environment"

run Rails.application
+ Rails.application

# 削除
- Rails.application.load_server

config.ruを修正したところ無事にサーバーを起動できた。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?