Я пытаюсь внедрить модели FactoryBot в мои тесты Rspe c. Эти модели выглядят так:
FactoryBot.define do
factory :user do
first_name { "MyString" }
last_name { "MyString" }
inbox
outbox
end
end
FactoryBot.define do
factory :outbox do
user_id { 1 }
end
factory :inbox do
user_id { 1 }
end
end
И когда я вызываю «Patient = Create (: user)» в моем тесте Rspe c, я получаю эту ошибку:
Failure/Error: patient = create(:user)
ActiveRecord::RecordInvalid:
Validation failed: User must exist
Чтобы обеспечить более широкое представление, вот мои модели:
class User < ApplicationRecord
has_one :inbox
has_one :outbox
has_many :payments
has_many :messages
end
class Inbox < ApplicationRecord
belongs_to :user
has_many :messages
end
class Outbox < ApplicationRecord
belongs_to :user
has_many :messages
end
и относительно части schema.rb:
create_table "users", force: :cascade do |t|
t.boolean "is_patient", default: true
t.boolean "is_doctor", default: false
t.boolean "is_admin", default: false
t.string "first_name"
t.string "last_name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "outboxes", force: :cascade do |t|
t.integer "user_id"
t.index ["user_id"], name: "index_outboxes_on_user_id"
end
create_table "inboxes", force: :cascade do |t|
t.integer "user_id"
t.index ["user_id"], name: "index_inboxes_on_user_id"
end
Что я делаю не так здесь, этот пользователь в FactoryBot не может пройти проверку?