Ответ 1
Вы можете попробовать следующее:
factory :user do
name "name"
bla "bla"
end
factory :custom_user, class: CustomUser, parent: :user do
customfield "customfield"
end
Для получения дополнительной информации: Inheritance.
У меня возникла следующая проблема: В моем приложении я использую наследование для определения моей модели пользователя:
class User
include Mongoid::Document
field :name...
field :bla...
end
class CustomUser < User
field :customuserfield...
end
Как я могу писать фабрики для сопоставления этого класса hirachie в моих спецификациях. И продолжайте писать, не повторяя себя.
FactoryGirl.define do
factory :user do
name "name"
bla "bla"
factory :custom_user do
customfield "customfield"
end
end
end
Это не работает для меня, потому что класс также "Пользователь". С "User" я получил неверную ошибку, потому что пользовательские поля здесь не определены. Есть ли хорошая практика, способ или метод, чтобы сделать что-то подобное.
Вы можете попробовать следующее:
factory :user do
name "name"
bla "bla"
end
factory :custom_user, class: CustomUser, parent: :user do
customfield "customfield"
end
Для получения дополнительной информации: Inheritance.
Просто добавьте класс: CustomUser в: custom_user factory. Это подходит для меня. Когда вы вложены в: user, это означает, что parent является User, но это проще.
FactoryGirl.define do
factory :user do
name "name"
bla "bla"
factory :custom_user, class: CustomUser do
customfield "customfield"
end
end
end