超初心者が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って何ですか?みたいなエラーが出ました。

今回の環境では、この方法で解決できませんでしたが、
あまりにこの情報が多く見られたので、ご参考までに。

超初心者がRuby on Railsインストールで詰まったところ

◆マシン環境は以下
OS:Windows10 Home (64bit)

◆今回インストールしたバージョン
Ruby2.4.3-2(x64)
Rails5.1

◆手順
1、Rubyのインストール
2、Railsのインストール
の順番で進めます。

◆概要
1、RubyのインストールはサードパーティのRubyInstallerを使用し、Ruby本体と同時にバージョン2.4以降Development Kitの代わりになるMSYS2の開発ツールとMINGWのコンパイラをインストールします。

2、Railsのインストールは、RailsInstollerを勧めるサイトも多かったのですが、現時点でRuby2.4以降に対応するバージョンが見つからなかったので使わず、MSYS2アップデートとMINGWのインストールで使えるようになるgemコマンドでインストールします。

1、Rubyのインストール

RubyのインストールはRubyInstallerを使用。
現時点でオススメマーク(=>)が出ていたバージョン2.4.3-2をインストール。

(一番新しいのは2.5.0-2ですが、新しすぎると追随する機能がまだ無かったりするそうです)

RubyInstallerの.exeファイルをダウンロードしたら、
ダブルクリックでインストール開始。ここはウィザード形式で勝手に進んでいきます。

ウィザードが終わったところで、

>ruby -v

を打ち込み、バージョンチェックでインストールが完了しているか確認します。
うまく完了していたら、下記のようにバージョン情報が返ってきます。

>ruby -v
ruby 2.4.3p205 (2017-12-14 revision 61247) [x64-mingw32]

このあと、Rubyのバージョン2.3以前はgemを用意するのにDevelopment Kitをインストールする手順が必要だったようですが、バージョン2.4以降は不要で、代わりにRubyのインストール完了後にMSYS2の開発ツールとMINGWのコンパイラをインストールする画面がでてきますので、それをインストールするとgemもついてくるようです。

1 - MSYS2 base installation
2 - MSYS2 repository update
3 - MSYS2 and MINGW development toolchain

1を入力すると、MSYS2のインストールがウィザード形式で自動的に始まり、自動で完了します。

※1だけで終えてしまうと、Railsのインストールをする際に下記のエラーが出てしまいます!(途中までは良い感じに進んでいるように見えますが)

Temporarily enhancing PATH for MSYS/MINGW...
Building native extensions. This could take a while...
ERROR: Error installing rails:
ERROR: Failed to build gem native extension.


current directory: C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/nio4r-2.2.0/ext/nio4r
C:/Ruby24-x64/bin/ruby.exe -r ./siteconf20180313-20412-wgrs1a.rb extconf.rb


current directory: C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/nio4r-2.2.0/ext/nio4r
make "DESTDIR=" clean
'make' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。


current directory: C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/nio4r-2.2.0/ext/nio4r
make "DESTDIR="
'make' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。


make failed, exit code 1


Gem files will remain installed in C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/nio4r-2.2.0 for inspection.
Results logged to C:/Ruby24-x64/lib/ruby/gems/2.4.0/extensions/x64-mingw32/2.4.0/nio4r-2.2.0/gem_make.out

ということで、
1の終了後、すぐに2のアップデートと3のMINGWインストールが必要ということになります。ちょっと量が多くてそれなりの時間が必要です(筆者の環境で約10分程度でした)

2、Railsのインストール

コマンドプロンプトから
(RubyのStart Command Prompt with Rubyからでも可)

>gem install rails

を実行すると、先ほどのエラーも無く

Done installing documentation for nio4r, websocket-extensions, websocket-driver, actioncable, thor, method_source, railties, bundler, sprockets, sprockets-rails, rails after 51 seconds
11 gems installed

と、すんなり完了。

ふたたびコマンドでバージョンチェックして、インストールできているか確認します。

>rails -v

うまく完了していたら、下記のようにバージョン情報が返ってきます。

>rails -v
Rails 5.1.5

これで、Ruby on Railsの最低限の開発環境が整いました。

もし、紹介したようなエラーが出て困ったという
私のような初心者さんがおられましたら、少しでも手助けになれば幸いです。

(もし文章等でおかしな記述などありましたら、ご指摘いただけると助かります^^)

※参考になったサイト様
バージョンは違いますが、とても親切で分かりやすかったです。