web-dev-qa-db-ja.com

Rails consoleでFactoryGirlのファクトリーを使用する方法

開発環境でRailsコンソールを使用していますが、ファクトリを使用したいのですが、どうすればそれらにアクセスできますか?

私が試してみました require "FactoryGirl"戻る

1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
81
Eric Baldwin

この問題を解決するには、工場のボットgemがGemfileで次のように指定されていることを確認してください

group :development, :test do
  gem 'factory_bot_Rails'
end

その後、bundle install

これにより、FactoryBotクラスが開発コンソールで使用可能になります。

お役に立てれば。

37
muttonlamb

これは次の方法で行います。

  • サンドボックスモードのテスト環境でRailsコンソールを起動します。

    Rails console test --sandbox
    

これは次の2つの理由で必要です。

  1. 行った変更はすべてロールバックされます。
  2. 既にいくつかのシードデータがある場合、工場が属性のシリアル化を1から開始することがありますが、これらのレコードは既に存在する可能性があります。

次に、コンソールで:

  • FactoryBotが必要(FactoryGirlと呼ばれていました):

    require 'factory_bot'
    
  • ファクトリー定義をロードします。

    FactoryBot.find_definitions
    
  • FactoryBotメソッドを含めて、FBへのすべての呼び出しの前にFactoryBotFactoryBot.createの代わりにcreate)を付けないようにします。

    include FactoryBot::Syntax::Methods
    

追伸 fabrication gem の場合、Railsコンソールで定義をロードできます:

Fabrication.manager.load_definitions

また、require 'faker'を使用する場合。

166
Alex Popov

必要がある require 'factory_girl_Rails'、これはRailsで使用されている実際のgemです。その宝石にはFactory Girlライブラリが含まれ、FactoryGirlが利用可能になります。

これを行うか、muttonlambの答えのように起動時にGemfileを要求するようにGemfileを更新できます。

20
Robin Daugherty