Rails không thực sự hiểu các khái niệm cơ sở dữ liệu "nâng cao" như khung nhìn nên chúng sẽ không xuất hiện trong schema.rb
của bạn . Khi rspec đang thiết lập cơ sở dữ liệu thử nghiệm, nó sẽ sử dụng schema.rb
để tạo lược đồ cơ sở dữ liệu, vì bạn sẽ không tìm thấy các dạng xem của mình trong schema.rb
, bạn sẽ không tìm thấy các chế độ xem của mình trong cơ sở dữ liệu thử nghiệm mà rspec sẽ sử dụng và mọi thứ đều tan rã.
Giải pháp là chuyển từ schema.rb
thành structure.sql
. Bạn có thể cập nhật config/application.rb
của mình nói:
config.active_record.schema_format = :sql
và sau đó thực hiện rake db:structure:dump
để tạo structure.sql
tập tin. Khi bạn có điều đó, hãy xóa schema.rb
từ hệ thống tệp của bạn và kiểm soát sửa đổi, thêm structure.sql
và thử lại.