LoginSignup
2
1

【Ruby on Rails】rails g コマンドが反応しないことに関して

Posted at

現在スクールで学んでいます。
Ruby on Rails学習中に新たにアプリ作成しようとした際に、つまづいたことを備忘録としてこちらで共有します。追記や修正等ありましたら、ご指摘いただけるとありがたいです。

環境

・MacBookAir 13インチ M1(2020)
・OS:Sonoma 14.3
・メモリ:16GB
・Rails: version 6.1.7.6

概要

 Ruby on RailではControllerやModelを新規で作成する際に、コマンドから簡単に作成することが出来ます。その際にrails g または、rails generateというコマンドをターミナル上で実行します。

状況

$ rails g model post title:string content:text
Running via Spring preloader in process 82269
      invoke  active_record
      create    db/migrate/20240208095330_create_posts.rb
      create    app/models/post.rb
      invoke    test_unit
      create      test/models/post_test.rb
      create      test/fixtures/posts.yml

create db/migrate/20240208095330_create_posts.rb
create app/models/post.rb
とターミナル上では出ているのに、実際にVScodeを開いてみると、ファイルが見当たらない・・・
dbディレクトリにもmigrateファイル見当たらず。
(すみません、VScodeは写真撮り忘れました)

やったこと

・ 再度ターミナルのログの確認、DBが作成されているか確認しました。
$ rails db:create$ rails db:migrateも完了している。
$ bundle install もしているか確認しました。
$ yarn add @babel/plugin-proposal-private-methods も完了。
・Railsのバージョンやgemも確認。
・スクールのメンターに質問する。

原因

gems/ のファイルのパッケージ「spring」 が実行し続けているのが原因。
つまり他のアプリ制作で立ち上げたRailsサーバーをexitしていなかったのが原因。

対処法

$ spring status
Spring is running:

まだ 「spring」 が実行し続けていました。

$ spring stop
Spring stopped.

この状態で再度、下記を実行。

$ rails g model post title:string content:text
Running via Spring preloader in process 82269
      invoke  active_record
      create    db/migrate/20240208095330_create_posts.rb
      create    app/models/post.rb
      invoke    test_unit
      create      test/models/post_test.rb
      create      test/fixtures/posts.yml

出てきた内容は同じでしたが、ファイルは作成できていました。

最後に

おそらく $rails s で他のサーバーも立ち上げたままにして、アプリ制作に移ったため、なかなかターミナルの内容が反映されない状況だったと思います。都度サーバーはexitする大切さを実感しました。参考文献、そしてメンターさんありがとうございました。

参考文献

2
1
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
2
1