0

我对 Rails 非常陌生,并且正在关注 Michael Hartl 的 Ruby on Rails 3 教程一书,并且在使用 factory_girl gem 时遇到了一些小问题。

具体来说,我不确定如何更新代码

Factory.next(...)

在开始之前,我确实在书中使用的旧版 FactoryGirl 和我现在使用的当前 4.1 版本之间遇到了一个小问题,但能够解决它。

具体来说,编写代码的旧方式为

用户 = 工厂(:用户)

需要更新到

用户 = FactoryGirl.create(:user)

那很好,但是现在我要开始编写代码了(如书中所写):

规格/控制器/users_controler_spec.rb

.    
@users << Factory(:user, :email => Factory.next(:email))
.

我试过更新到

.
@users << FactoryGirl.create(:user, :email => FactoryGirl.next(:email))
.

但得到错误:

Failure/Error: @users << FactoryGirl.create(:user, :email => FactoryGirl.next(:email))
 NoMethodError:
   undefined method `next' for FactoryGirl:Module

我尝试了一些不同的变化,但仍然无法完全理解。是我在使用 FactoryGirl 时遇到的问题,只是没有正确使用 gem,还是与 Ruby 方法有关?

4

1 回答 1

3

看起来你必须使用generate序列的方法:

@users << Factory(:user, :email => FactoryGirl.generate(:email))

有关详细信息,请参阅有关序列和关联的文档。

于 2012-11-27T05:08:31.957 回答