При попытке создания ассоциаций пространства имен Factorybot не регистрирует пространство имен, а использует свое собственное, несмотря на то, что определяет его точно так же, как документация (и каждый поток в SO говорит).
Модель Admin::TicketCategory
class Admin::TicketCategory < ApplicationRecord
has_many :tickets
end
И его фабрика:
FactoryBot.define do
factory :ticket_category, class: Admin::TicketCategory do |f|
f.text { Faker::Commerce.product_name }
end
end
Модель Ticket
:
class Ticket < ApplicationRecord
belongs_to :user
belongs_to :service_rep, class_name: 'User', foreign_key: :user_id
belongs_to :ticket_category
belongs_to :ticket_status
belongs_to :ticket_urgency
has_many :ticket_comments
end
И ее фабрика:
FactoryBot.define do
factory :ticket do |f|
f.user
f.ticket_category
f.subject { Faker::Lorem.sentence }
f.body { Faker::Lorem.paragraph }
f.ticket_urgency { admin_ticket_urgency }
f.ticket_status { admin_ticket_status }
f.service_rep { user }
end
end
Когда я пытаюсь проверить модель Ticket
, появляется эта ошибка:
1) Ticket has a valid factory
Failure/Error: expect(FactoryBot.create(:ticket)).to be_valid
NameError:
uninitialized constant Ticket::TicketCategory
Любая помощь будет принята с благодарностью!