開発環境で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 c
次の操作を行うことができますrequire 'factory_bot'
回答:
この問題を解決するには、ファクトリボットgemがGemfileで次のように指定されていることを確認してください
group :development, :test do
gem 'factory_bot_rails'
end
その後bundle install
。
これにより、FactoryBotクラスが開発コンソールで使用できるようになります。
お役に立てれば。
gem 'factory_girl_rails', :require => false
と、開発環境を最初からセットアップしようとするとエラーが発生しますので、注意してください。
rails console test
。これにより、テスト環境でコンソールを作成できるため、開発環境でテストパッケージを使用するためにGemfileを更新する必要がなくなります
私はこれを次の方法で行います:
サンドボックスモードのテスト環境で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 製作宝石の場合、以下を使用してRailsコンソールに定義をロードできます。
Fabrication.manager.load_definitions
require 'faker'
それを使うならまた。
require 'ffaker'
?
fixture_file_upload
不在が原因である、未定義のメソッドの問題に直面したActionDispatch::TestProcess
ので、それも含めることを検討してください
require "factory_bot_rails"; include FactoryBot::Syntax::Methods; require 'ffaker'
rails c -e test --sandbox