无法在构造函数方法中使用FactoryGirl特征

时间:2014-01-20 11:06:36

标签: ruby-on-rails ruby factory-bot

我尝试使用特征并在我尝试在我的规范中声明一个时出现错误

Rails版本是4.0.2 FactoryGirl 4.3.0

FactoryGirl.define do

      factory :user do

          name "pete"

          trait :admin do
              admin true
          end

      end

end

//在规范

user = create(:user, :admin)

//失败

NoMethodError:       对于#

,未定义的方法'admin ='

谁能看到我在哪里出错?

谢谢!

1 个答案:

答案 0 :(得分:1)

首先确保User模型的字段为 admin ?然后,如果您不需要重用trait属性允许的属性,请使用manual中描述的工厂:

FactoryGirl.define do
   factory :user do
      name "pete"
      factory :admin do
         admin true
      end
   end
end

并创建factorie:

user = create :user
admin = create :admin

如果您必须创建交叉使用的模型属性(例如 male/female )以及 admin/non-admin ,请使用特征。