Rails versteht "fortgeschrittene" Datenbankkonzepte wie Ansichten nicht wirklich, daher erscheinen sie nicht in Ihrer schema.rb
. Wenn rspec seine Testdatenbank einrichtet, verwendet es schema.rb
um das Datenbankschema zu erstellen, da Sie Ihre Ansichten nicht in schema.rb
finden , werden Sie Ihre Ansichten nicht in der Testdatenbank finden, die rspec verwenden wird, und alles fällt auseinander.
Die Lösung besteht darin, von schema.rb
zu wechseln zu structure.sql
. Sie sollten in der Lage sein, Ihre config/application.rb
zu aktualisieren zu sagen:
config.active_record.schema_format = :sql
und dann einen rake db:structure:dump
ausführen um die structure.sql
zu generieren Datei. Sobald Sie das haben, entfernen Sie schema.rb
Fügen Sie aus Ihrem Dateisystem und der Versionskontrolle structure.sql
hinzu , und versuchen Sie es erneut.