0

私はRailsを初めて使用し、MichaelHartlによるRubyon Rails 3チュートリアルブックをフォローしていて、factory_girlgemを使用しているときに少し問題が発生しています。

具体的には、コードを更新する方法がわかりません

Factory.next(...)

これに到達する前に、本で使用されている古いバージョンのFactoryGirlと現在使用している現在の4.1バージョンとの間に小さな問題が発生しましたが、それを解決することができました。

具体的には、コードを書く古い方法は

user = Factory(:user)

に更新する必要がありました

user = FactoryGirl.create(:user)

それは問題ありませんでしたが、今私は(本に書かれているように)コードに来ています:

spec / controllers / 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 に答える