Có cách nào để tải các đồ đạc Rails theo một thứ tự cụ thể trong khi chạy thử nghiệm không? Ví dụ, học các lớp sau đây ...Tải các đồ đạc đường ray theo một thứ tự cụ thể khi kiểm tra
class User < ActiveRecord::Base
has_many :memberships
has_many :groups, through: :memberships
end
class Group < ActiveRecord::Base
has_many :memberships
has_many :users, through: :memberships
end
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
Memberships
có một mức cơ sở dữ liệu ràng buộc khoá ngoại đòi hỏi Users
và Groups
có mặt trước khi chúng có thể được tạo ra. Tuy nhiên, vì Rails tải lịch thi đấu theo thứ tự abc, Memberships
được tải trước Users
và một lỗi xảy ra cho biết mối quan hệ không tồn tại (đúng như vậy).
ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR: insert or update on table "memberships" violates foreign key constraint
Có cách nào để nạp Users
và Groups
đồ đạc trước khi tải Memberships
trong khi chạy thử nghiệm?
Bạn đang sử dụng đồ đạc có tên? Xem tại đây: http://stackoverflow.com/questions/510195/rails-fixtures-how-do-you-set-foreign-keys – davidfurber
Có, tôi đang sử dụng đồ đạc có tên. –
Bạn đã thử cài đặt FIXTURES env var chưa? Và/hoặc sử dụng "đồ đạc" lệnh trong thử nghiệm để xác định những đồ đạc để tải? – davidfurber