👋
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