99

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

require "FactoryGirl"私はどのリターンを試しました

1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
4

4 に答える 4

218

私はこれを次の方法で行います:

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

    rails console -e test --sandbox
    

これが必要な理由は 2 つあります。

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

次に、コンソールで:

  • FactoryBot が必要です (以前は FactoryGirl と呼ばれていました):

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

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

    include FactoryBot::Syntax::Methods
    

PSファブリケーション gemの場合、Rails コンソールに次のように定義をロードできます。

Fabrication.manager.load_definitions

require 'faker'使う場合も。

于 2014-05-10T12:04:25.160 に答える
26

require 'factory_bot_rails'これは、Rails で使用されている実際の gem です。この gem には Factory Bot ライブラリが含まれ、利用できるようになりFactoryBotます。

これを行うか、Gemfile を更新して、muttonlamb の回答のように起動時にそれを要求することができます。

于 2014-01-07T20:42:13.883 に答える
5

コンソールを起動するたびに利用できるようにしたい場合は、次のコードを config/environments/development.rb の先頭に追加できます。

require 'factory_bot_rails'
require 'faker' # if you're also using faker gem
require 'rails/console/helpers'
Rails::ConsoleMethods.prepend(FactoryBot::Syntax::Methods)

コンソールを起動した直後に組み込みのヘルパーを使用できるようになりました。たとえば、次のようになります。

company = create(:company)
于 2021-02-08T21:31:11.357 に答える