Rails 학습 노트 1(Active Record 초보자)
4
4
4
4
4
불필요한 설정을 간소화하기 위해, 대상과 테이블 사이의 관계를 나타내는 명명 약정을 사용했다.예를 들어 모델 클래스는 북이고 데이터 테이블은 북스입니다.외부 키 사용singularizedtable_name_id로 명명합니다.정수 필드 id를 표의 메인 키로 사용합니다.
Active Record 모델 작성
ActiveRecord::Base 클래스를 상속하면 됩니다.
class Product < ActiveRecord::Base
end
Active Record는 데이터 테이블의 필드를 모델의 속성에 자동으로 매핑하는 지능적인 기능입니다.Active Record가 자동으로 매핑되므로 Rails 모델에서 등록 정보를 선언할 필요가 없습니다.객체를 작성할 때 테이블의 데이터 항목도 작성됩니다.
p = Product.new
p.name = "Some Book"
puts p.name # "Some Book"
원래 SQL 문의 경우:
CREATE TABLE products (
id int(11) NOT NULL auto_increment,
name varchar(255),
PRIMARY KEY (id)
);
프레임의 기본 설정이 많은 일을 도와준 것을 볼 수 있습니다.하지만 마음에 들지 않는다면 당연히 자신의 설정을 사용할 수 있지만, 좀 귀찮아질 것이다.
CRUD
create와 new 두 가지 방법을 사용하면create는 하나의 대상을 실례화하여 데이터베이스에 저장할 수 있습니다.new는 대상을 실례화하지만 저장하지 않습니다.
user = User.create(name: "David", occupation: "Code Artist")
또는
user = User.new
user.name = "David"
user.occupation = "Code Artist"
user.save
데이터를 읽는 방법에는 여러 가지가 있습니다.
# return a collection with all users
users = User.all
# return the first user
user = User.first
# return the first user named David
david = User.find_by(name: 'David')
# find all users named David who are Code Artists and sort by created_at
# in reverse chronological order
users = User.where(name: 'David', occupation: 'Code Artist').order('created_at DESC')
업데이트는 수정된 조합을 찾는 것입니다.
user = User.find_by(name: 'David')
user.name = 'Dave'
user.save
OR:
user = User.find_by(name: 'David')
user.update(name: 'Dave')
모든 것을 한 번에 업데이트할 수도 있습니다.
User.update_all "max_login_attempts = 3, must_change_password = 'true'"
간편한 삭제:
user = User.find_by(name: 'David')
user.destroy
상세 정보: Active Record 쿼리 데이터 검증
인스턴스를 데이터베이스에 저장하기 전에 Active Record는 모델 데이터를 검증하는 방법을 제공하며, 데이터가 요구사항에 부합하는지 검증하기 전에는 데이터베이스에 실질적인 작업을 하지 않습니다.검증이 통과되지 않으면create,save,update 방법은false로 되돌아옵니다.대응하는 폭발 방법은 이상을 되돌려줍니다 (create!,save!,update!)
상세 정보: Active Record 데이터 유효성 검사 콜백 - 모델의 라이프 사이클 변경 시 라이프 사이클 변경 시 자동으로 실행되는 특정 코드를 결합할 수 있습니다.
상세 정보: Active Record 콜백
옮기다
이것은 진정으로 데이터베이스를 만드는 데 사용되는 파일입니다. 모델을 만들 때 클래스 파일과 이 파일이 동시에 생성됩니다. Active Record의 자동 매핑으로 클래스에 대응하는 속성 값이 나타나지 않습니다.데이터 테이블을 만들고 rakedb:migrate 위의 코드는 구체적인 데이터베이스 종류와 상관없이 MySQL,PostgreSQL,Oracle 등 데이터베이스에 사용할 수 있습니다.상세 정보: Active Record 마이그레이션
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.