1
0

More than 1 year has passed since last update.

Activerecordを操作するCRUD処理

Last updated at Posted at 2021-08-26

Activerecordとは

簡単に言うとデータベース(SQL)をRubyを通して人にわかりやすく伝えてくれるものです。
本来ならSQLでないとデータベース操作はできないのですがrailsで用意されている
Activerecordのおかげでデータベースの操作ができます。

コンソールを使う。

コンソールとはざっくり言うとコンピューターとの意思疎通をするものです。
下のコマンドでデータベースを操作できるようになります。

 $ bundle exec rails c #cはコンソールのcです。 rails cでも rails consoleでもokです。

CRUD処理とは何か。

データベースを操作する時に Create(生成),Read(読み込む),Update(更新),Delete(削除)
の操作を総称してCRUD処理と言います。
下でCRUD処理の操作を見ていきましょう。

CRUD処理 (Create)


staff = Staff.create(name: "taro", email: "taro@example.com", job:"programmer")
#インスタンスを作成しデータベースに保存すること

staff = Staff.new(name: "taro", email: "taro@example.com", job: "programmer")
#モデルのインスタンスを作成

staff = Staff.build(name: "taro", email: "taro@example.com", job: "programmer")
#メモリ上にインスタンスを置いておく時に使う。

staff.save
#データベースに保存する



*createとbuildの違い
・buildインスタンスをデータベースに保存の必要がない時に使う。記録用として使われる。
・createインスタンスはデータベース上に保存してずっとデータを置いておきたいときに使います。

CRUD処理 (Read)

staffs = Staff.all
#modelのレコード(データ)を全部取得

staff = Staff.first
#最初にレコードを取得  *secondなら2番目、thirdなら3番目,lastなら最後のレコードを取得 
*first! last!も使えます。

staff = Staff.find(1)
staff = Staff.find([1,2])
#()に入っている引数を取得.  *何もなかったらエラーになります。


staff = Staff.find_by(name: "taro")  *()は条件文
#()の中の条件文に一致したものを取得  
*find_by!は存在していなかったらエラーになります。!がないときはnilになります。

staffs = Staff.where (name: "taro", job: "programmer")  *()の中は条件文
#()の中の条件文に一致したものを取得

CRUD処理 (Update)

staff = Staff.first
staff.update(name: "ziro")
#レコードを更新できる。 update!も使えます。

staff = Staff.where(name:"taro")
staff = Staff.update_all(name:"ziro")
#nameがtaroがみんなziroになります。

CRUD処理 (Delete)

staff = Staff.second
staffs.destroy
#レコードを削除する

staff.delete
*deleteは使わない方がいいみたいです。

他にも pluck count order reorder select exist などいろいろあるので調べて見てください。

⚫︎参考資料
https://qiita.com/ryokky59/items/a1d0b4e86bacbd7ef6e8
https://wa3.i-3-i.info/word12140.html
https://qiita.com/Oka1551/items/42cd09fab957f0512d00

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