こんにちは、たにーです。
Railsのコンソールでadminレコードを作成したい場面がありましたので、
備忘録として記述します。
rails console(コンソール)とは
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(カラム名:"カラムの値")
[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でコンソールを閉じることができます。
rails consoleの表記違い
あれ?私のと表記が違う?という方もいるのではないようでしょか?
通常であれば、、下記の表記だと思われます。
[1] irb(main)>
私のは、irbではなく、pryになっていたかと思います。
[1] pry(main)>
irbとは
「Interactive Ruby」の略で、対話形式でプログラムを実行できるようになるコマンドです。
pry(プライ)とは?
標準のirbよりも機能的にすぐれた対話型ツール。
なので、よほどの理由がない限り標準のirbでconsoleを使用するよりもpryを使用すべき。
pryの導入
至って簡単です。
gemを導入するだけです。
gem 'pry-rails'
その後は、budle installを実行。
$ bundle install
これで、コンソールの表記は変わっていると思います。
参考文献でpryの使い方も書いてあり、
- show-model(s) (モデルのデータタイプを確認できる。)
- show-routes (早くルートを確認できる。)
は使えそうなので、今度試してみます。
以上、たにーでした。
参考文献