Railsy tak naprawdę nie rozumieją "zaawansowanych" koncepcji baz danych, takich jak widoki, więc nie pojawią się one w twoim schema.rb
. Kiedy rspec konfiguruje swoją testową bazę danych, użyje schema.rb
aby utworzyć schemat bazy danych, ponieważ nie znajdziesz swoich widoków w schema.rb
, nie znajdziesz swoich widoków w testowej bazie danych, której będzie używał rspec, i wszystko się rozpadnie.
Rozwiązaniem jest przejście z schema.rb
do structure.sql
. Powinieneś być w stanie zaktualizować plik config/application.rb
powiedzieć:
config.active_record.schema_format = :sql
a następnie wykonaj rake db:structure:dump
aby wygenerować structure.sql
plik. Gdy już to zrobisz, usuń schema.rb
z systemu plików i kontroli wersji, dodaj structure.sql
i spróbuj ponownie.