0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Railsコンソールを使ってレコード登録を行う方法

Last updated at Posted at 2021-03-29

こんにちは、たにーです。

Railsのコンソールでadminレコードを作成したい場面がありましたので、
備忘録として記述します。

rails console(コンソール)とは

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

役立つ場面

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

詳しくは今回書きませんが、
エラーが起きた際には、非常に役立つので覚えて損はありません。

実際にコンソールで登録してみよう

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

terminal
 $ rails c
   Running via Spring preloader in process 6516
   Loading development environment (Rails 5.2.4.5)
   [1] pry(main)> 
terminal
   [1] pry(main)> モデル名.create(カラム名"カラムの値")
terminal
   [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モデルに保存されているか確認しましょう。

terminal
   [2] pry(main)> モデル名.all

コントローラーの書き方と同じです。

terminal
   [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の表記違い

あれ?私のと表記が違う?という方もいるのではないようでしょか?
通常であれば、、下記の表記だと思われます。

terminal
   [1] irb(main)>

私のは、irbではなく、pryになっていたかと思います。

terminal
   [1] pry(main)>

irbとは

「Interactive Ruby」の略で、対話形式でプログラムを実行できるようになるコマンドです。

pry(プライ)とは?

標準のirbよりも機能的にすぐれた対話型ツール。

なので、よほどの理由がない限り標準のirbでconsoleを使用するよりもpryを使用すべき。

pryの導入

至って簡単です。
gemを導入するだけです。

Gemfile
gem 'pry-rails'

その後は、budle installを実行。

terminal
 $ bundle install

これで、コンソールの表記は変わっていると思います。

参考文献でpryの使い方も書いてあり、

  • show-model(s) (モデルのデータタイプを確認できる。)
  • show-routes (早くルートを確認できる。)

は使えそうなので、今度試してみます。

以上、たにーでした。

参考文献

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?