WEB系の技術を詳しく解説

【NomethodError】Rails Tutorial 3章でエラーが出たので調べてみたらtmuxが原因だった

独学でRuby on Rails チュートリアルを進めています。チュートリアル通りにやっても、実はエラーが出たりで挫折する方も多いと思うのですが、エラーは逆に成長するチャンスだと思ってます。

今回は第3章で気になるエラーが出たので調べてみました。

スポンサードリンク

rais test でエラーが吐かれる

今回発生したエラーはこちら

4 runs, 7 assertions, 0 failures, 0 errors, 0 skips /usr/local/rvm/gems/ruby-2.4.1/gems/notiffany-0.1.1/lib/notiffany/notifier/tmux/client.rb:12:in version': undefined method []’ for nil:NilClass (NoMethodError)

と出ています。NoMethodErrorが吐かれてますね。テスト自体は成功しているのですが、いちいちログが出てくるのでは結果も見にくいですし早急に解決する必要があります。

色々調べてみると「tmux」というものが原因っぽいという事が分かりました。

tmuxとは

tmuxは端末多重化ソフトウェアだそうです。

僕はUnixをあまり触ったことがなかったのでこの名称を知らなかったのですが、これがあると1つのターミナルで複数のサーバーにログインしたり、それぞれの仮想端末で別々のプログラムを実行できるそうです。

要はAWSのターミナルがtmuxという事でしょうか。複数タブ開けますよね。こんな名称だったのか。

今回のエラー解決はtmuxを導入すれば解決する

とりあえずこのエラーはtmuxを入れると解決するそうです。早速導入してみる。

するとこんなログが生成されます。

testしてみましょう。

直りました。良かった。

まとめ

Rails Tutorial の序盤でこのようなエラーが出たらtmuxを導入してみて下さい。(それでもまだエラーログが出る場合はrails db:migrateをしてみて下さい。)

なぜこのエラーが発生するのか原因は不明です。もしわかる方いたらコメントして頂けると幸いです。

【追記】guardというgemが影響してるっぽいです。初心者にはやや応用のテスト関係に関わるgemなので、また時間のある時に調査しようと思います。

スポンサードリンク

3 Comments

a

僕も今このエラーに悩まされてたんですが、この記事のおかげで解決できました!ありがとうございます! 僕もtmuxが怪しいのかな?と思ってたんですがまさかインストールで治るとは… 理屈が分からないのが気持ち悪いですが、とにかく助かりました!

返信する
ニッひび

tmuxという存在すら知らない初心者でした。解説ありがとうございました!助かりました

返信する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です