반응형
Rails 마이그레이션 : t. 대체 이름이있는 참조?
그래서 나는 Schools at a School에 대해 다음과 같은 create_table을 가지고 있습니다.
create_table :courses do |t|
t.string :name
t.references :course
t.timestamps
end
그러나 다음과 같은 두 가지 다른 코스 를 참조하고 싶습니다.
has_many :transferrable_as # A Course
has_many :same_as # Another Course
다음과 같이 말할 수 있습니까?
t.references :transferrable_as, :as=> :course
초기 마이그레이션 / 컬럼 정의에서이 모든 작업을 수행 할 수 있습니다 (적어도 현재 Rails 5에서는).
t.references :transferable_as, index: true, foreign_key: {to_table: :courses}
t.references :same_as, index: true, foreign_key: {to_table: :courses}
다음과 같이 할 수 있습니다.
create_table :courses do |t|
t.string :name
t.references :transferrable_as, references: :courses
t.references :same_as, references: :courses
t.timestamps
end
또는 t.belongs_to
별칭으로 사용t.references
foreign_key: true
이 두 참조 라인에 추가 할 수 없습니다 . 데이터베이스 수준에서 외래 키로 표시하려면 다음을 사용하여 마이그레이션해야합니다.
add_foreign_key :courses, :courses, column: :transferrable_as_id
add_foreign_key :courses, :courses, column: :same_as_id
최신 정보
Rails 5.1 이상에서는 다음과 같이 create_table
블록 의 마이그레이션에 외래 키를 추가 할 수 있습니다 .
create_table :courses do |t|
t.string :name
t.references :transferrable_as, foreign_key: { to_table: 'courses' }
t.references :same_as, foreign_key: { to_table: 'courses' }
t.timestamps
end
이 스레드는 Rails와 같은 방식이 더 다르다고 생각합니다. Scaffolding ActiveRecord : 동일한 데이터 유형의 두 열
마이그레이션에서 :
t.belongs_to : transferrable_as
t.belongs_to : same_as
이 질문에 대한 추가 답변으로 모델에는 연결을 완료하기 위해 다음 줄이 있어야합니다.
belongs_to :transferrable_as, class_name: "Course"
belongs_to :same_as, class_name: "Course"
옵션을 references
수락 하지 않는다고 생각 :as
하지만 열을 수동으로 만들 수 있습니다.
create_table :courses do |t|
t.string :name
t.integer :course1_id
t.integer :course2_id
t.timestamps
end
참고 URL : https://stackoverflow.com/questions/2933582/rails-migration-t-references-with-alternative-name
반응형
'Programing' 카테고리의 다른 글
JavaScript에서 Date 객체를 수신하기 위해 JSON을 구문 분석하는 방법은 무엇입니까? (0) | 2020.08.13 |
---|---|
Resharper Ctrl-T 매핑 손실 (0) | 2020.08.13 |
10 진수 유형에 대한 선언 접미사 (0) | 2020.08.13 |
Python의 Haversine 공식 (두 GPS 지점 사이의 방향 및 거리) (0) | 2020.08.13 |
HTML5 localStorage는 비동기식입니까? (0) | 2020.08.12 |