2013-03-12 2 views
1

로 이름을하지만 난 열 이름이 EXTERNAL_ID과 같이되고 싶어하지만 외부의 어떤 모델에 싶지 않아요. 기본적으로 레일스는 _id가 접미어로 간주 될 때 외래 키 연관을 찾으며 존재하지 않으면 이주가 취소된다고 생각합니다. 그 해결책은 무엇입니까? 내가 그것을 t.integer 할 때 나는 당신의 도움이레일 마이그레이션 열 레일 마이그레이션을 원하십니까 _id 접미사


에 대한

def self.up 
    create_table :external_mappings do |t| 
     t.string :external_name 
     t.integer :external_id 

     t.timestamps 
    end 
    end 

감사를 : 외부 ID 마이그레이션이 작동합니다. 그게 나를 external_id foreiegn 키 참조를 찾고 있다고 생각하게, 우리는 foriegn 키 참조를 억제 할 수있는 방법이 있습니다. 레일을 사용하고 있습니다. 2.3.5

답변

0

_id도없이 _id 이름과 참조 외래 키를 줄 수 있으므로 계속하십시오. Rails가 model-name_id을 대상으로하지만, 별다른 문제없이 정의 할 수있는 규칙입니다.

0

아니요, 레일스는 존재하지 않는 모델로 인해 이전을 취소하지 않습니다. 원래 포스터 비계 및 "참조"형식을 사용하여 새 모델을 만든 경우

+0

내가 할 때 t.integer : external_id –

0

이 궁금하다. 이 경우 외부 키를 만들려고 시도하는 동안 마이그레이션이 실패하게됩니다. 그냥 정수의 경우

그렇지, 그렇지 않으면 허용 열 이름의 끝에 _id를 추가 아무 문제가 없다.