開発環境で Rails コンソールを使用しており、ファクトリを使用したいと考えています。どうすればそれらにアクセスできますか?
require "FactoryGirl"
私はどのリターンを試しました
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
開発環境で Rails コンソールを使用しており、ファクトリを使用したいと考えています。どうすればそれらにアクセスできますか?
require "FactoryGirl"
私はどのリターンを試しました
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
私はこれを次の方法で行います:
サンドボックス モードのテスト環境で Rails コンソールを起動します。
rails console -e test --sandbox
これが必要な理由は 2 つあります。
次に、コンソールで:
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'
使う場合も。
require 'factory_bot_rails'
これは、Rails で使用されている実際の gem です。この gem には Factory Bot ライブラリが含まれ、利用できるようになりFactoryBot
ます。
これを行うか、Gemfile を更新して、muttonlamb の回答のように起動時にそれを要求することができます。
コンソールを起動するたびに利用できるようにしたい場合は、次のコードを 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)