2014-09-12 63 views
1

我当前已定义了一个简单的工厂为:工厂女孩使用多个替代属性

factory :tm_event do 
    ... 
    category "MyString" 
    category_id { Random.rand(1..2147483647) } 
    ... 
end 

我试图创建一个具有以下一个TmEvent对象:

FactoryGirl.create(:tm_event, category: 'rock', category_id: '12') 

当此同时运行类别和category_id在结果对象中设置为nil

如果我单独运行category或category_id设置,那么两个实例都会被设置为覆盖相应的属性。当我直接创建事件TmEvent.create(category: 'rock', category_id:'12')时,这两个属性都被填充。

我的语法正确吗? 我应该在哪里寻找解决方案?

+1

什么是'tm_event'?什么是'类别'?你能分享这个模型吗?我认为你要做的是与'tm_event'一起创建一个类别。 – 2014-09-12 11:58:42

+0

@RyanBigg tm_event是一个ActiveRecord模型对象,其中category是一个字符串,category_id是一个整数。在create方法中将id字符串更改为整数也没有区别。 – Richbits 2014-09-12 12:20:47

回答

1

你的语法看起来不错。我只是在我的控制台中尝试过。它更新了这两个属性。

2.1.2 :010 > FactoryGirl.build(:user) 
=> #<User id: nil, email: "[email protected]", encrypted_password: "$2a$10$WnXKcpKZt0kkkXyRRe/QP.NS7mIaFcgFzCpZhW0hzEO...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: nil, updated_at: nil, god: nil, name: "Test User 123", sash_id: nil, level: 0, confirmation_token: nil, confirmed_at: "2014-09-12 11:58:28", confirmation_sent_at: nil, unconfirmed_email: nil, failed_attempts: 0, unlock_token: nil, locked_at: nil> 
2.1.2 :011 > FactoryGirl.build(:user, email: '123', sign_in_count: 2) 
=> #<User id: nil, email: "123", encrypted_password: "$2a$10$JIjhQp40Lz/2fCskW63lzOHHxV2NwX2h5URswbuZsgH...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 2, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: nil, updated_at: nil, god: nil, name: "Test User 123", sash_id: nil, level: 0, confirmation_token: nil, confirmed_at: "2014-09-12 11:58:28", confirmation_sent_at: nil, unconfirmed_email: nil, failed_attempts: 0, unlock_token: nil, locked_at: nil> 
2.1.2 :012 > 

尝试在您的控制台。

+0

谢谢,没想到这是错误的语法,因为我在其他地方使用它,虽然有不同的类型。 – Richbits 2014-09-12 12:29:13