はじめに
プログラミングスクールに通い、日々勉強中の初心者です。
普段はコードを書き、いちいちサーバーを起動しては、エラーが表示され修正...なんてことを繰り返しています。
そんな時に、コンソールを使用するととても便利だということが最近身に染みて少しずつ分かってきたので、今回も自身と同じような初心者の方に向けた投稿をしようと思います。
開発環境
ruby 2.6.3
Rails 5.2.4.4
コンソールを立ち上げる
rails cのコマンドを実行すると、001 > と入力できる画面に切り替わります。
$ rails c
Running via Spring preloader in process 18895
Loading development environment (Rails 5.2.4.4)
2.6.3 :001 >
Userモデルを例に挙げて色々な動作を確認していきたいと思います。
普段コントローラーに記述している内容を、コンソールで確認・試すことができます。
①ターミナル上でユーザーを作成
必須情報のみを入力すれば、任意のカラムはnilで保存されます。
※NOT NULL制約がついているものは、入力しないとエラーになってしまいます。
2.6.3 :001 > User.create!(name: "test", email: "test@test.com", password: "111111")
=> #<User id: 1, email: "test@test.com", name: "test", created_at: "2021-02-10 15:45:42", updated_at: "2021-02-10 15:45:42">
②id = 1で作成したので、下記のコマンドで作成したユーザーを確認できます。
2.6.3 :002 > User.find(1)
=> ①の結果と同様
③インスタンス変数に代入して、内容を変更する ※@userの中には先ほど作成した、User id: 1の情報が格納されました。 以下のように変更したい内容だけを記述することで、その他のカラムの値はそのまま、変更したい内容だけをアップデートすることが出来ます。
2.6.3 :003 > @user = User.find(1)
=> ①の結果と同様
2.6.3 :004 > @user.update(name: "test2")
=> #<User id: 1, name: "test2", email: "test@test.com", created_at: "2021-02-10 15:45:42", updated_at: "2021-02-10 15:54:50">
④ユーザーを削除する
2.6.3 :004 > @user.destroy
(0.1ms) begin transaction
PostImage Load (0.1ms) SELECT "post_images".* FROM "post_images" WHERE "post_images"."user_id" = ? [["user_id", 4]]
PostComment Load (0.1ms) SELECT "post_comments".* FROM "post_comments" WHERE "post_comments"."user_id" = ? [["user_id", 4]]
Favorite Load (0.1ms) SELECT "favorites".* FROM "favorites" WHERE "favorites"."user_id" = ? [["user_id", 4]]
User Destroy (3.3ms) DELETE FROM "users" WHERE "users"."id" = ? [["id", 4]]
(5.3ms) commit transaction
=> #<User id: 1, name: "test2", email: "test@test.com", created_at: "2021-02-10 15:45:42", updated_at: "2021-02-10 15:54:50", >
# 全削除のコマンド
2.6.3 :005 > User.all.destroy_all
⑤検索方法
# 全てのユーザーを表示
2.6.3 :006 > User.all
# id番号で情報を取得
2.6.3 :007 > User.find(1)
# id以外のカラムの内容で情報を取得
2.6.3 :008 > User.find_by(name: "test")
# idが最後の情報を取得(最新のデータ)
2.6.3 :009 > User.find_by(name: "test")
⑥最後に、cont + Dでコンソールから出ることができます。
特に初学者の方であれば、普段コントローラーの記述でよく見ているものばかりだと思いますし、すぐにでも試すことができるコマンドばかりです。
毎回、サーバーを起動させて一つ一つデータを作成したり確認するよりも、ターミナルを効率よく使用できれば作業時間も短縮できると思います。
私自身コンソールの存在を知った際には、大変感動した覚えがあります!
終わり
今回は以上になります。
私自身もプログラミング初心者ですが、同じ様な立場の方に少しでも参考になれば幸いです。
また、もし内容に誤りなどがございましたら、ご指摘いただけますと幸いです。