いつも通り、rails g controller Rooms show
でコントロールを作成しようとしたところ、このような長いエラーが出てしまいました。
/Users/sawayu/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/execjs-2.7.0/lib/execjs/runtimes.rb:58:in 'autodetect': Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
from/Users/sawayu/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/execjs-2.7.0/lib/execjs.rb:5:in '<module:ExecJS>'
from/Users/sawayu/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/execjs-2.7.0/lib/execjs.rb:4:in '<top (required)>'
from/Users/sawayu/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in 'require'
:
:
:
from -e:1:in '<main>'
上のfromから始まる文が30行以上出てきました。
エラーをググったところ、springをストップさせるといいみたい!
sawayu@sawayunoMacBook-Pro oil % spring stop
Spring stopped.
#ストップ確認
このようにspring stop
でspringをストップさせた後、もう一度 rails g controller Rooms show
でコントローラー作成しようとしたらまた先ほどと同じエラー分が出てしまいました。
Spring stopped.
の後bin/spring status
このコマンドでspringが起動しているか確認できます。
エラーの解決結論
gem 'mini_racer'
Gemfileにgem 'mini_racer'
と入力
忘れずにbundle install
をした後、showアクションのコントロール作成したいので
rails g controller Rooms show
と入力。
すると
Running via Spring preloader in process 8112
create app/controllers/rooms_controller.rb
route get 'rooms/show'
invoke erb
create app/views/rooms
create app/views/rooms/show.html.erb
invoke test_unit
create test/controllers/rooms_controller_test.rb
invoke helper
create app/helpers/rooms_helper.rb
invoke test_unit
invoke assets
invoke coffee
create app/assets/javascripts/rooms.coffee
invoke scss
create app/assets/stylesheets/rooms.scss
無事、エラー解決できました!