我遇到了以下问题: 在我的应用程序中,我使用继承来定义我的用户模型:
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
这对我不起作用,因为该课程也是“用户”。 使用“用户”我收到了无效错误,因为自定义字段在这里并不存在。 是否有一种良好的做法,方法或方法来重新安排这样的事情。
答案 0 :(得分:52)
你可以试试这个:
factory :user do
name "name"
bla "bla"
end
factory :custom_user, class: CustomUser, parent: :user do
customfield "customfield"
end
更多信息:Inheritance。
答案 1 :(得分:11)
只需将类:CustomUser添加到:custom_user factory。这对我行得通。当你嵌套在:user时,它意味着父是User,但它更简单。
FactoryGirl.define do
factory :user do
name "name"
bla "bla"
factory :custom_user, class: CustomUser do
customfield "customfield"
end
end
end