超初心者がRuby on Railsインストールで詰まったところ~「TypeError:」~
前回までの流れで、
Ruby2.4.3-2
Rails5.1
のインストールができたので、ようやくサーバを立ち上げてコンテンツの作成に。
今回は、topアクションを持つhomeコントローラを作ります。
コンソールで
rails g controller home top
を実行すると、自動的に必要なディレクトリやファイルが作成されます。
あとは、サーバを立ち上げて、パスを指定すれば自動生成されたファイルが表示されるはず。。
と思いきや、ここでドはまりしてしまいました。
lodalhost:3000では、ちゃんとYay! You’re on Rails!は表示されるのに、
lodalhost:3000/home/topを指定すると、こんなエラー画面が!
コンソールにもこのとおり。
Started GET "/home/top" for 127.0.0.1 at 2018-03-16 13:57:02 +0900
Processing by HomeController#top as HTML
Rendering home/top.html.erb within layouts/application
Rendered home/top.html.erb within layouts/application (1.0ms)
Completed 500 Internal Server Error in 1248ms
ActionView::Template::Error (TypeError: オブジェクトでサポートされていないプロパティまたはメソッドです。):
(中略)
app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb__513025883_121106620'
結論から言いますと、
やらないといけない作業が抜けていました!
「node.js」のインストールです。
node.jsから環境に合ったものを選んでインストールし、
サーバをCtrl+cで停止して、コンソールを全て閉じます。
再度コンソールを立ち上げてから
rails s
でサーバを起動します。
(起動させる場所に注意!)
ブラウザでlocalhost:3000/home/topを確認すると、
無事に表示されました。
【参考までに】
エラー内容から、何かが足りないのだな、というのはわかりますが、ルーティングもコントローラも確認してもおかしなところはなく、Webで検索しても
gem 'coffee-script-source', '1.8.0'
でcoffeescriptのバージョンを下げたら解決したという方が多いようですが、RubyもRailsも古いバージョンの情報のようで、同じことをしてもcoffee-script-sourceって何ですか?みたいなエラーが出ました。
今回の環境では、この方法で解決できませんでしたが、
あまりにこの情報が多く見られたので、ご参考までに。