前提について
はじめまして、 プログラミングスクールに通ういりふねと申します。この記事は、スクールの課題である個人アプリの開発の記録を書くことで、自身のアウトプットに利用しています。もし、読んでいただけた方がいましたら、フィードバックをしていただけたら嬉しいです。
開発するのは「有給休暇管理ツール」です。仕様は過去記事をどうぞ。
アプリはデプロイまで行いますが、サービスとして提供するものではありません。あくまでも自学習の一環ですので、ご理解下さい。では本題へどうぞ。
今回実施する内容
前回までで、テーブルの作成までが完了しました。今回は、「index,html.haml」のビューページの表示までを目指します。手順は次の通りです。
- ルーティングファイルを編集
- branchコントローラーの作成と編集
- index.html.hamlの作成
- ローカルからrootパスへアクセス
- 表示されていればOK
最初は順調
ルーティングの編集、branchesコントローラーの作成とindexアクションの編集。viewsディレクリ内に「branches」ディレクトリを作成し、「index.html.haml」の作成までサクサク進みます。ローカルサーバーを起動し、「local:3000」へアクセスするとエラーが出てきました(泣)
見たことないエラー。。。
ExecJS::RuntimeError in Branches#index
調べたところ、RubyからJavaScriptを実行する「ExcJS」に関するエラーのようで、解決策も複数あるようです。読んだ記事はこちら。
ExecJSとは
Rubyスクリプトからjavascriptコードを実行するための仕組み
ExecJSがjavascriptエンジンを自動検索(=autodetect)する
gemのインストールで解決
いくつかあった解決方法の中に「therubyracer」というgemをインストールすれば良いとあったので、実行しましたが、そもそもbundle installがうまく完了しません。
念のため、ルーティングやコントローラーの記述を確認しましたが、こちらは問題ないようです。
そんなとき、こちらの記事に出会いました。
前置きが長くなりましたが以下が本題。今週久しぶりに環境構築をした所、案の定>therubyracerで止まり、「はいはい、またキミね」という感じだったのだが、なんとtherubyracerの後継としてmini_racerが爆誕しており、Rails本家にもマージされていた。
mini_racerはかなり新しいlibv8をハンドリングしている。試してみた所簡単にインストールが成功した。
私もmini_racerのgemをインストールしたところ、無事にビューページが表示されました。これで、一件落着です。
今日の積み上げ
- カリキュラムに載っていないエラーを見つけたら、用語の確認、原因の調査をおこなう。
- 検索する際は、記事の作成日もチェックする。
- 時間がかかっても自分で解決する癖をつける。