初投稿です。
今回、参考にさせていただいた記事はこちらです。
https://qiita.com/hatorijobs/items/2928e152f22d009b07d0
今回発生したエラー
それでは早速本題ですが、伊藤淳一さんの
「everyday rails - rspecによるrailsテスト入門」
という書籍やブログを参考させていただきながら、サンプルのセットアップをしていたところ、以下のようなエラーが出ました。
アプリのディレクトリ % bundle update
Fetching gem metadata from https://rubygems.org/.............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Bundler could not find compatible versions for gem "railties":
In Gemfile:
rails (= 6.0.0) was resolved to 6.0.0, which depends on
railties (= 6.0.0)
sass-rails (~> 4.0.3) was resolved to 4.0.5, which depends on
railties (>= 4.0.0, < 5.0)
どうやら、
「互換性のあるrailtiesが見つからない」
といった内容のエラーのようです。
では、railtiesを変更すればいいかというと、そう単純な話ではないとのこと。
解決策
まずは、
アプリのディレクトリ % gem list
と入力してGemの一覧を確認してみました。
すると、「sass-rails」というGemのバージョンが、
アプリのGemfileに記述してあるものと「gem list」に記述されているものとで異なっていることがわかりました。
具体的には
gem 'sass-rails', '~> 4.0.3'
と
sass-rails (6.0.0, 5.1.0)
となっていました。
このバージョンが同じでないと、冒頭のエラーが出てくるようです。
したがって、Gemfileを次のように変更したあと、bundle updateしました。
gem 'sass-rails', '~> 6.0.0'
この後、
アプリのディレクトリ % bundle update
ですね。
すると、今度は次のようなエラーが出ました。
アプリのディレクトリ % bundle update
Fetching gem metadata from https://rubygems.org/.............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies....
Bundler could not find compatible versions for gem "railties":
In Gemfile:
coffee-rails (~> 4.0.0) was resolved to 4.0.0, which depends on
railties (>= 4.0.0.beta, < 5.0)
rails (= 6.0.0) was resolved to 6.0.0, which depends on
railties (= 6.0.0)
といっても、先ほどの「sass-rails」とほぼ同じような内容です。
今度は「coffee-rails」というGemのバージョンが、
アプリのGemfileに記述してあるものと「gem list」に記述されているものとで異なっているとのことです。
具体的には、
gem 'coffee-rails', '~> 4.0.0'
と
coffee-rails (5.0.0, 4.2.2)
だったわけですね。
そこで、先ほどと同じように
gem 'coffee-rails', '~> 5.0.0'
と変更した後、
アプリのディレクトリ % bundle update
bundle updateを実行しました。
すると、無事実行することができました!