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 1 year has passed since last update.

ActiveRecordについて

Posted at

ActiveRecordとは?

MVCで言うところのM(モデル)に相当するものでありビジネスデータとビジネスロックを表すシステムの階層である。
データベースに恒久的に保存される必要のあるビジネスオブジェクトの作成と利用を円滑に行えるようにします。

一言で言えば 「RubyとSQLの翻訳機です」

基本的にDBにはDB言語としてSQLが使われています。
SQLでないと操作ができません。

しかし、RailsにはModelにActiveRecordが適用されているおかげで。 Ruby を用いてDBからデータを
探したり持ってくることが出来ます。

app/models/application_record.rb
class ApplicationRecord < ActiveRecord::Base #ここでApplicationRecordにActiveRecordを継承
  self.abstract_class = true     
end
app/models/date.rb
class Date < < ApplicationRecord #DateモデルにそのApplicationRecordを継承
end

Ruby on Rails

ORマッパーにActiveRecordを採用している
ActiveRecordはRuby on Railsが開発している

OR Mapper(Object<>RDB)

SQLを意識せずにデータベースを扱うことが可能
DBエンジンは原則何でも可能

ActiveRecordのメリット

Rubyで直感的にかける

探す場合のコード

User.find_by(name: "daie")

値をDBに保存するときのコード

User.create(name: "daie")

このように DBを見たり、レコードを作成する ときにSQLではなく、rubyで描けるようになります。

命名ルール

モデルのクラスー単数系、語頭を大文字にする(BookClass)
データベースのテーブル-複数形、語はアンダースコアで区切る(book_class)
created_atとupdated_atで作成日時の更新日時を自動保存できる。

ActiveRecordの使い方

1、DBにテーブルを作成
2、Ruby上でactive_recordをrequire
3、Timezoneを日本語に設定
4、ActiveRecord::BaseにDB接続情報を記載
5、テーブル名に基づくクラスを作成
6、上記のクラスからインスタンスを作成
 インスタンスのレコードが1になる

ActiveRecordでよく使うメソッド

ActiveRecordのCRUDに従い説明していきます。
「Create:生成」、「Read:参照」、「Update:更新」、「Delete:削除」

careate(生成)に関するメソッド

@date = Date.new(title: "タイトル",content: "内容" )
#dateもでつのインスタンスを生成

@date = Date.build(title: "タイトル", content: "内容")
#newと同じ、可能性を上げるため関連モデルのインスタンスにするときによく使われる

@date.save
#newやbuildで作った@dateをDBに保存する

@date.create(title: "タイトル", content: "内容")
#newとsaveを組み合わせて生成と同時にDBへ保存する

read(参照)に関するメソッド

@date = Date.all
#datesテーブルから全レコードを配列として取得

@date = Date.first
#datesテーブルのidが一番小さいレコードを取得

@date = Date.last
#datesテーブルのidが一番大きいレコードを取得

@date = Date.find(1)
#引数に入っている数字と同じidのレコードを取得

@date = Date.find_by(title: "タイトル")
#引数に入っている条件と合っているもので一位番若いidのレコードを取得

@date = Date.where(title: "タイトル")
#引数に入っている条件と合っているすべてのレコードを取得

@date = Date.order(id: :desc)
#引数に入っているカラムを:asc(昇順)またはdesc(降順)に並び替えて取得

@date = select(:title)
#引数に入っている名前のカラムのみを取得

@date = Date.limit(3)
#引数に入っている数字の数だけidの若い順にレコードを取得

update(更新)に関するメソッド

@date = update
#findやfind_byで取得したレコードを元に更新

delete(削除)に関するメソッド

@date.destroy
#findやfind_byで取得したコードの削除

終わりに

初めてActiveRecordについてまとめてみました。
未経験でプログラミング初心者なので今までの学習を言語化できるようまとめて行きます。
今までなんとなく理解するだけだった内容を改めて記事にすることで理解を深められたらと思います。

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?