【초보자용】Rails의 Active Record의 해설&메소드 정리

소개



항상 아무렇지도 않게 컨트롤러에 @blog = Blog.new 라든지 @user = User.find(params[:id]) 라든지 잘 생각하지 않고 쓰고있었습니다.
Rails 굉장하네, 편하다구나 생각했는데 어쨌든 엄밀히 말하면 Rails가 아니라 ActiveRecord 덕분이군요.
그래서 이번에는 언제나 아무렇지도 않게 사용하고 있는 ActiveRecord에 대해서 가능한 한 부드럽게 해설해 보았습니다.

ActiveRecord란?



한마디로 「Ruby와 SQL의 번역기」입니다.

기본적으로 DB는 DB 언어로 SQL을 사용합니다.
SQL이 아니면 DB를 조작할 수 없습니다.

그러나 Rails는 Model에 ActiveRecord가 적용되어 덕분에 Ruby를 사용하여 DB에서 데이터를 검색하고 가져올 수 있습니다.
(엄밀하게는 Model에 ApplicationRecord를 통해 ActiveRecord가 적용되고 있기 때문에)

app/models/application_record.rb
class ApplicationRecord < ActiveRecord::Base #ここでApplicationRecordにActiveRecordを継承
  self.abstract_class = true     
end

app/models/blog.rb
class Blog < ApplicationRecord #BlogモデルにそのApplicationRecordを継承
end

그림으로 표현하면 이런 느낌



ActiveRecord의 이점



○ Ruby로 직관적으로 쓸 수 있다



예를 들어, 여러분이 아무렇지도 않게이 이름의 사용자를 DB에서 찾고 싶다고 생각하고 쓰는 이것
User.find_by(name: "ryokky")

값을 DB에 저장하고 싶을 때 작성
User.create(name: "ryokky")

이렇게 DB 안을 들여다 보거나 레코드를 만들 때 SQL이 아니라 여러분에 의해 익숙한 Ruby로 쓸 수 있습니다.

○ 어느 DB를 사용해도 Ruby로 통일 가능



DB에는 MySQL, PostgreSQL, SQLite, SQL Server, Oracle 등 다양한 옵션이 있습니다.
또한 각 DB마다 쓰는 방법이 미묘하게 다릅니다.
그 쓰는 방법을 모두 Ruby로 기술할 수 있도록 해 줍니다.

ActiveRecord에서 자주 사용하는 메서드



처음에도 썼지만 항상 컨트롤러에 쓰는 것은 대부분 ActiveRecord 메서드입니다.
이번에는 CRUD(“Create: 생성”, “Read: 참조”, “Update: 업데이트”, “Delete: 삭제”)를 따라 소개합니다.
소개 할 ​​수 없기 때문에 주요 것만

○Create(생성)에 관한 메소드


@blog = Blog.new(title: "タイトル", content: "内容")
#blogモデルのインスタンスを作成

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

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

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

○Read(참조)에 관한 메소드


@blog = Blog.all
#blogsテーブルから全レコードを配列として取得

@blog = Blog.first
#blogsテーブルのidが一番小さいレコードを取得

@blog = Blog.last
#blogsテーブルのidが一番大きいレコードを取得

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

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

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

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

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

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

참조계의 메소드는 편리한 것이 많이 있습니다.
또, 메소드 체인으로 보다 세세하게 지정하는 것도 가능합니다.

○Update(갱신)에 관한 메소드


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

○Delete(삭제)에 관한 메소드


@blog.destroy
#findやfind_byで取得したレコードを削除

더 메소드의 종류나 사용법을 알고 싶은 분은 이쪽의 기사가 참고가 되었으므로 부디
참고 : ActiveRecord CRUD 샘플

끝에



Rails를 공부하기 시작한 분들을 위해 정말 만져서 이번에는 소개해 보았습니다.
쓰고 있어 스스로도 흐릿한 곳이 묻힌 것 같습니다.
그 밖에도 알기 쉬운 기사등 있었으므로 소개해 둡니다.
Rails 초보자가 Active Reccord에 대해 정리해 보았습니다.
여기에서는 건드리지 않지만 O/R 매핑에 대해서도 쓰여 있기 때문에 꼭!

좋은 웹페이지 즐겨찾기