はじめに
railsでバックエンドを開発していて、DBにすでに値がある場合や、元々存在しない場合の二つの動きを検証したくて、rails consoleを触っていたところ、DBをいじることができないかと思ったので調べてみました。
実行したコマンド
$ bundle exec rails c
レコードを追加する
$ pry(main)> テーブル名.create(カラム名:"カラムの値")
今回、Hogeというテーブルのidというカラムとnameというカラムに値を入れて追加したいと思っています。
なので、以下を
rails consoleで実行します。
$ pry(main)> Hoge.create(id: 1, name: "hogehoge")
結果
id: 1,
name: "hogehoge",
created_at: 0000000000000000000000000000000 JST +09:00,
updated_at: 0000000000000000000000000000000 JST +09:00>
いけた。
レコードを削除する
上で追加したレコードを削除するために以下を実行します。
$ Hoge.find(id).destroy
上で追加したid=1のレコードを削除するので、(id)の箇所に1を入れます。
Hoge.find(1).destroy
結果
Hoge Destroy (1.8ms) DELETE FROM `hoge` WHERE `hoge`.`id` = 1
TRANSACTION (5.2ms) COMMIT
いけた。
destroyメソッドを使うと関連するデータも削除されてしまうので、注意が必要です。
そんな時はdeleteメソッドを使用します。