【问题标题】:Unable to use FactoryGirl traits in constructor method无法在构造方法中使用 FactoryGirl 特征
【发布时间】:2014-01-25 13:02:04
【问题描述】:

我并试图利用特征,但当我尝试在我的规范中声明一个时遇到错误

Rails 版本是 4.0.2 工厂女孩 4.3.0

FactoryGirl.define do

      factory :user do

          name "pete"

          trait :admin do
              admin true
          end

      end

end

//在规范中

user = create(:user, :admin)

//失败

无方法错误: #

的未定义方法“admin=”

谁能看出我哪里出错了?

谢谢!

【问题讨论】:

  • 有User 模型字段admin?
  • 你如何使用admin? user.admin = true 或 user.admin(true)?

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


【解决方案1】:

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

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

并将工厂创建为:

user = create :user
admin = create :admin

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-21
    • 2013-10-31
    • 2014-03-23
    • 2023-01-27
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    相关资源
    最近更新 更多