0

단일 테이블 상속 데이터 모델이 있습니다 (여기서 CityPage < Destination). 이것은 잘 동작했다.Minitest : STI를 사용할 때 테이블이 비어 있습니다.

이제 두 번째 유형 CountryPage < Destination을 추가 했으므로 테스트가 실패합니다. 특히 CityPage.allCityPage 픽처가 있어도 빈 결과를 반환합니다 (변경되지 않은 픽처는 &입니다).

내가 뭘 잘못하고 있니? 테스트 데이터가 생성되지 않는 이유는 무엇입니까?

답변

0

자식 모델이 둘 이상인 STI가있는 경우 부모의 이름을 딴 하나의 조명기 파일을 사용해야하고 type 속성 (즉, STI가 수행하는 것)을 사용하여 개별 조명기를 구별해야합니다. 그래서 제 경우에는 /test/fixtures/destinations.yml이 필요하고 /test/fixtures/{city,country}_pages.yml이 아닙니다.

간략한 인터넷 검색은 테스트 실행 후 데이터베이스를 삭제하는 Minitest와 관련이 있음을 나타냅니다. 아래 주석을 참조하십시오.

+1

명확히하기 위해 각 조명기 파일을 순차적으로로드하면 각 파일을 가져 오기 전에 연결된 데이터베이스 테이블이 비게됩니다. 궁극적으로 같은 테이블 (이 경우에는'destination ')을 사용하는 여러 조명기 파일을 가지고 있다면, 나쁜 시간을 보게 될 것입니다. YAML 파일이 처리되는 순서는 시스템에 따라 다르기 때문에 로컬에서 작동하는 것은 CI 서비스에서 작동하지 않을 수도 있고 그 반대도 가능합니다. – Barry