#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