Ruby on rails 4 工厂女工-使用未产生预期结果的特征

Ruby on rails 4 工厂女工-使用未产生预期结果的特征,ruby-on-rails-4,factory-bot,Ruby On Rails 4,Factory Bot,当我这样定义我的用户工厂时 FactoryGirl.define do factory :user do roles {[FactoryGirl.create(:role, :system, :admin)]} email "visitor.administration@example.com" name "Visitor Administration" password "visitor123" end end 具有以

当我这样定义我的用户工厂时

  FactoryGirl.define do
    factory :user do
      roles {[FactoryGirl.create(:role, :system, :admin)]}
      email "visitor.administration@example.com"
      name  "Visitor Administration"
      password "visitor123"
    end
  end
具有以下角色工厂:

    FactoryGirl.define do
      factory :role do
        company "internal"
        group "administration"
        function "visitor"
        activities '{}'
      end
      trait :system do
        group "system"
      end
      trait :admin do
        function "admin"
        activities '{"sheet" => ["create", "update", "delete", "show", "index"] }'
      end  
    end
执行

FactoryGirl.create(:user)
给我期望的结果

但是如果我试图在用户工厂中定义一个特征

  FactoryGirl.define do
    factory :user do
      roles {[FactoryGirl.create(:role)]}
      email "visitor.administration@example.com"
      name  "Visitor Administration"
      password "visitor123"

      trait :system_admin do
        roles {[FactoryGirl.create(:role, :system, :admin)]}
        email "admin.system@example.com"
        name  "Admin System"
        password "admin123"
      end
      factory :system_admin_user,  traits: [:system_admin ] 
    end
  end
我现在执行:

user = FactoryGirl.create(:system_admin_user)
然后我得到一个错误:

    (0.3ms)  BEGIN
      SQL (5.4ms)  INSERT INTO "roles" ("group", "function", "activities", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id"  [["group", "system"], ["function", "admin"], ["activities", nil], ["created_at", "2015-09-19 09:08:19.572605"], ["updated_at", "2015-09-19 09:08:19.572605"]]
    PG::NotNullViolation: ERROR:  null value in column "activities" violates not-null constraint
    DETAIL:  Failing row contains (14, internal, system, admin, null, 2015-09-19 09:08:19.572605, 2015-09-19 09:08:19.572605).

活动JSON字段是否定义错误

是,活动属性未正确写入:

activities '{"sheet" => ["create", "update", "delete", "show", "index"] }'
应该是:

活动{工作表:[“创建”、“更新”、“删除”、“显示”、“索引”]}