레일스는 두 가지 (그리고 두 가지) 공항이있는 데이터 개념을 가지고 작업하고 있습니다. 마침내 내 외래 키를 하드 코딩하여 합리적인 방법을 찾았습니다. 내 models/route.rb
레일스 3 : 다중 has_one 연관 및 시드
은 매우 간단하다 :
는class Route < ActiveRecord::Base
has_one :airport, :foreign_key => 'from_airport_id', :class_name => 'Airport'
has_one :airport, :foreign_key => 'to_airport_id', :class_name => 'Airport'
end
이 모두가 잘 동작하는 것 같지만 나는 제대로 시드 얻을 수없는 것. 그래서 같은
내 seeds.rb
외모 : 나는 다른 생성 한 공항 중 하나에서 이동하려면 종자 데이터를 말하려고 두 가지 방법이있다
Airport.delete_all
@kpdx = Airport.create(:icao => 'KPDX', :name => 'Portland International Airport', :lat => '45.58869934', :lon => '-122.5979996')
@ksea = Airport.create(:icao => 'KSEA', :name => 'Seattle Tacoma International Airport', :lat => '47.4490013122559', :lon => '-122.30899810791')
Route.delete_all
Route.create(:from_airport_id => @kpdx, :to_airport_id => @ksea, :route => "RIVR6 BTG OLM6")
Route.create(:from_airport_id => @kpdx, :to_airport_id => @ksea, :route => "BTG OLM OLM6")
Route.create(:from_airport_id => Airport.find_by_icao("KSEA"), :to_airport_id => Airport.find_by_icao("KPDX"), :route => "SEATL4 SEA HELNS4")
Route.create(:from_airport_id => Airport.find_by_icao("KSEA"), :to_airport_id => Airport.find_by_icao("KPDX"), :route => "SEA HELNS4")
참고. 어느 쪽도 작동하지 않습니다. rake db:seed
을 실행하면 airport
테이블의 ID가 증가 할 때 from_airport_id
및 to_airport_id
필드가 모두 1로 설정됩니다 (현재 실행 중 23 &24).
- 내가 뭘하는지보다 모델 코드를 처리 할 수있는 더 나은 방법이 있나요 :
그래서 나는이 개 질문이?
내가 :-)
감사 시드에서 잘못하고있는 무슨
그래, 알아두면 좋은 정보! 나는 그 변화를 만들었다. seeding 문제는 여전히 똑같습니다 (seeds.rb에서 아무 것도 변경하지 않았 음을 유의하십시오. 그렇게 생각하면, 나는 그것을 놓쳤습니다 :-) – tkrajcar
시드를 수정하기위한 코드로 업데이트되었습니다. –
위대한, 그게 고정. 감사! – tkrajcar