0
0

More than 3 years have passed since last update.

Mac OSアップデートが原因でrails g controller ができないのを解決

Last updated at Posted at 2020-07-03
いつも通り、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が起動しているか確認できます。

エラーの解決結論

Gemfile

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

無事、エラー解決できました!

原因は多分、MacOSによるアップデートが原因だと思います!

MacOSアップデート以外何もしていないので!
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0