2011-01-31 6 views
2

마이그레이션 파일에 ":dependent"옵션을 사용할 경우이 옵션에 사용할 수있는 값은 무엇입니까? 그리고 각 가치는 무엇을 의미합니까? 아무도 나에게 설명 할 수 있니?마이그레이션 ": 종속"옵션

여기가 "정상"레일에서 :dependent => :delete

def self.up 
    create_table :car, :id => false do |t| 
     t.integer :brand_id, :null =>false 
     t.timestamp :buy_at, :null => false 

    end 

    add_index :car, :brand_id 
    add_foreign_key :car, :brands, :dependent => :delete 
    end 

def self.down 
    drop_table :balance_updated 
end 

답변

0

:dependent 옵션은 그래서 같은 모델에 사용되는, 사용

has_many :models, :dependent => :destroy 

을하지만, 난 당신이 foreign_key_migrations 플러그인을 사용하여 생각? 그렇다면 this source code line을보고 :dependent 옵션에서 무엇을하는지 알 수 있습니다.

0

외부 키는 두 테이블을 서로 연결하는 데 사용되는 키입니다.

FOREIGN KEY는 다른 테이블의 PRIMARY KEY를 참조하는 한 테이블의 필드 (또는 필드 모음)입니다. 그래서 자동차의 열 brand_id이 브랜드의 테이블 (기본 키)에 따라한다 Reference

는 일반적으로 (당신이 기본 레일 데이터베이스를 사용하는 경우, sqlite3를 기본적 명명) brand_id 호출 할 것이다.

이렇게하면 브랜드 테이블에서 브랜드가 삭제 된 경우 자동차 테이블의 Mercedes라는 브랜드의 모든 자동차도 삭제됩니다.