2014-12-17 2 views
0

기존 테이블 이름이 boss_name이었습니다. 레일스 모델을 만들고 싶습니다.기존 테이블에서 모델을 생성 한 후에 레일 테이블이 존재하지 않습니다.

"rails generate bossname"을 사용하여 모델을 만들고 self.table_name = "boss_name" 을 클래스에 추가했습니다.

모델이 성공적으로 생성 된 후 레일 콘솔을 시작하고 테이블을 쿼리하려고했습니다.

Bossname.first는 문제없이 boss_name 테이블의 첫 번째 값을 제공합니다.

레일즈 콘솔이 잘 작동하지만, bossname_spec.rb 용 rspec을 실행할 때 "Bossname (Table does not exist)"이라는 오류가있었습니다.

나는 누구나 레일 콘솔에서 작동하는 이유를 알 수 있고 응용 프로그램에서 작동하지 않기를 바랍니다. 응용 프로그램에서 작동하도록하는 방법에 대한 힌트도 정말 감사합니다.

+0

테스트 환경에서 마이그레이션을 실행 했습니까? RAILS_ENV = 테스트 번들 exec rake db : migrate' – mdemolin

+0

필자는 모델을 만들기 전에 존재하는 테이블을 가지고 있다고 언급했습니다. 이 경우에도 이전을 수행해야합니까? – user3920567

+0

이것은 당신의 오류가 언급 한 것이 아닙니다 : '보스 이름 (테이블은 존재하지 않습니다)'. 테이블은'rails console'을 호출 할 때 사용되는 개발 데이터베이스에 존재할 수 있지만 테스트 데이터베이스에는 존재하지 않습니다 ('rspec'에 의해 사용됨). – mdemolin

답변

2

이는 개발 데이터베이스에는 boss_name 테이블이 있지만 테스트 데이터베이스에는 존재하지 않음을 나타냅니다. 다음과 같이 현재 개발 데이터베이스 스키마를 테스트 데이터베이스에 복사 할 수 있습니다.

rake db:schema:dump 
RAILS_ENV=test rake db:setup 
관련 문제