👋

rails c を使ってレコード登録

に公開

rails c(コンソール)とは

rails の環境を読み込んだ状態でrubyコードを実行できるツールです。
他にも作成している rails アプリケーション内で定義したメソッドや読み込んでいる gem も実行することができます。

役立つ場面

  • いろんなメソッドを試しながら実装したいとき
  • エラーが起こったが原因がわからないとき

登録するには?

まずは、コンソールを立ち上げます。

ターミナル
$ rails c
   Running via Spring preloader in process 6516
   Loading development environment (Rails 5.2.4.5)
   [1] pry(main)> 

作成時には以下の記述でデータの作成が可能です。

ターミナル
[1] pry(main)> モデル名.create(カラム名:"カラムの値")

例えばadminモデルにメールアドレスとパスワードを設定すると下記のようになります。

ターミナル
   [1] pry(main)> Admin.create!(email:"test1@gmail.com", password:"123456", )
      (0.1ms)  begin transaction
     Admin Exists (0.2ms)  SELECT  1 AS one FROM "admins" WHERE "admins"."email" = ? LIMIT ?  [["email", "tesrt1@gmail.com"], ["LIMIT", 1]]
     Admin Create (4.8ms)  INSERT INTO "admins" ("email", "encrypted_password", "created_at", "updated_at") VALUES (?, ?, ?, ?)  
         [["email", "test1@gmail.com"], ["encrypted_password", "$2a$12$gtXWZK10cp32d99s7zfnjO9OT19Q4FLT0nJPdTwVMKOTcnZXMtt6q"], 
         ["created_at", "2021-03-29 09:41:14.618946"], ["updated_at", "2021-03-29 09:41:14.618946"]]
      (5.3ms)  commit transaction
    => #<Admin id: 1, email: "test1@gmail.com", created_at: "2021-03-29 09:41:14", updated_at: "2021-03-29 09:41:14">

Createと出ており、無事idも付与されているのが分かります。
念の為、adminモデルに保存されているか確認しましょう。

ターミナル
[2] pry(main)> モデル名.all
ターミナル
[2] pry(main)> Admin.all
     Admin Load (0.2ms)  SELECT "admins".* FROM "admins"
   => [#<Admin id: 1, email: "tesrt1@gmail.com", created_at: "2021-03-29 09:41:14", updated_at: "2021-03-29 09:41:14">,
   [3] pry(main)> 

終了するときは quitまたはexitでコンソールを閉じることができます。

まとめ

今日は少ないですがここまでで終わります。
就活と毎日学習の両立は大変ですが、頑張っていきます!

Discussion