Rails 학습 노트 1(Active Record 초보자)

3032 단어
Active Record는 SQL 문을 작성하지 않고도 데이터를 지속할 수 있도록 코드에 있는 객체의 속성을 데이터 테이블에 연결하는 MVC 모델의 M입니다.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 마이그레이션

    좋은 웹페이지 즐겨찾기