Rails 5.2.2.1 でWEBアプリケーションを作り、credentialsを使う際に【Your Ruby version is ~~~, but your Gemfile specified ~~~】が出た時の対処

スポンサーリンク

credentialsとは?

Rails5.2から使われるようになった、暗号化・復号化できるファイル。

詳細は以下を参照してみてください!!

Rails5.2から追加された credentials.yml.enc のキホン

https://qiita.com/NaokiIshimura/items/2a179f2ab910992c4d39

環境

rubyの環境

ruby 2.5.1

Railsの環境

Rails 5.2.2.1

データベース

Mysql@5.6

.bash_profile

eval "$(rbenv init-)"
export PATH="~/.rbenv/shims:/usr/local/bin:$PATH"
export PATH="usr/local/opt/mysql@5.6/bin:$PATH"

その他aliasの設定

起きた事象

credential.ymlを編集する。

自分のファイルにmaster.keyの存在も確認していたので、このサイトの通りにやってみたらいけるかもしれないと思っていました。

Rails5.2から追加された credentials.yml.enc のキホン

https://qiita.com/NaokiIshimura/items/2a179f2ab910992c4d39

コマンド(ターミナル)

EDITOR="vi" bin/rails credentials:edit

起きたエラー

Your Ruby version is 2.3.7, but your Gemfile specified 2.5.1

検証

検証①Rubyのバージョン確認

・・・・・・うーん、Rubyのバージョンがおかしいと言われているので一応rubyのバージョンも確認してみました。

コマンド(ターミナル)

ruby -v

結果

ruby2.5.1p57(2018-03-29version63029)[x86_64-darwin18]

2.5.1ですねぇ・・・

検証②rbenvでRubyを2.3.1にしてbundle installを実行

Rubyのバージョンが切り替わらない時の対処法!

https://qiita.com/opiyo_taku/items/3312a75d5916f6cd32b1

Rubyのバージョンが2.3.1出ないといけないのかと思い、rbenvでバージョンを切り替え。

bundle installができなかった。。。

どうしたら解決したか

EDITOR=”vi” rails credentials:editで実行する。

bash_profileで設定していたPATHの設定が原因でした!

これは正直盲点で、簡単だからと言ってすぐコピペで試してはいけないことを再認識。

PATHを通すというのは例えばrailsコマンドを使う際に実は

/usr/bin/(rails)

などという記述が省略されているんですね。

今回はbin/railsコマンドを入力しており、bin/railsはRubyの2.3.1のバージョンを参照していたのが原因でした。

やっぱり自分の環境ごとに記述を変えなければいけないですね。

間違い探しになってしまうので意外と長時間悩んでしまいますね・・・

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