Bình thường FactoryBot cung cấp cơ chế để định nghĩa association trong factories của Rails.
factory :user department end
Trong models sẽ có quan hệ như sau
class User < ApplicationRecord belongs_to department end
Nhưng mình đã từng gặp trường hợp do thay đổi cấu trúc database nên phải dùng song song cả quan hệ cũ và quan hệ mới ( mục đích là để các API cũ vẫn sử dụng tiếp được )
Ví dụ một quan hệ như sau:
class User < ApplicationRecord has_many :pets has_many :user_pets has_many :original_pets, class_name: Pet.name, through: :user_pets end class UserPet < ApplicationRecord belongs_to :user belongs_to :original_pets, class_name: Pet.name, primary_key: :id, foreign_key: :pet_id end
Như vậy các API mới sẽ sử dụng quan hệ mới trong khi các API cũ sẽ được sửa dần dần.
Khi viết test mình phải tạo factory bot cho quan hệ mới
Khi viết test mình phải tạo factory bot cho quan hệ mới
factory :original_pet, class: Pet ... end factory :user_pet user original_pets end