আমি কীভাবে রেল কনসোলে ফ্যাক্টরিগার্ল থেকে কারখানাগুলি ব্যবহার করব


91

আমি উন্নয়নের পরিবেশে রেল কনসোল ব্যবহার করছি এবং আমি কারখানাগুলি ব্যবহার করতে চাই। আমি কীভাবে তাদের অ্যাক্সেস পেতে পারি?

আমি চেষ্টা করেছি require "FactoryGirl"যা কোনটি ফিরে আসে

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

একটি সাধারণ গুগল অনুসন্ধান বেশ কয়েকটি ফলাফলের দিকে নিয়ে যায়। আপনি কি এই চেষ্টা করেছেন? তারা কি কাজ করছে না? এ পর্যন্ত কি কি চেষ্টা করেছ?
wpp

4
এগুলি সব পরীক্ষায় রয়েছে, আমি এটি উন্নয়নে করতে চাই
এরিক বাল্ডউইন

4
আপনি সম্ভবত ফ্যাক্টরিগার্ল ধ্রুবক প্রয়োজনের পরিবর্তে প্রয়োজনীয় 'কারখানার_গর্ল' দিয়ে শুরু করতে চাইবেন।
রব ডসন

4
বর্তমান সময়ের জন্য সামঞ্জস্য করা - আপনি rails cতারপরে একটি শুরু করতে পারেনrequire 'factory_bot'
রুডিঅনরেলস

উত্তর:


39

এই সমস্যাটি সমাধানের জন্য নিশ্চিত করুন যে কারখানার বট রত্নটি এর মতো আপনার জেমফাইলে সুনির্দিষ্ট

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

তারপরে bundle install

এটি ডেভলপমেন্ট কনসোলে ফ্যাক্টরিবট ক্লাসটি উপলব্ধ করা উচিত।

আশাকরি এটা সাহায্য করবে.


4
এর পরিবর্তে রত্ন ফাইলে ফ্যাক্টরিগার্ল যুক্ত করা gem 'factory_girl_rails', :require => falseযে কেউ স্ক্র্যাচ থেকে উন্নয়নের পরিবেশ স্থাপনের চেষ্টা করছে তাদের জন্য ত্রুটি ফেলবে, সতর্ক থাকুন।
এপিজিন

4
এই উত্তরটি কাজ করে, তবে স্বীকৃত উত্তরটি হওয়া উচিত rails console test, এটি আপনাকে পরীক্ষার পরিবেশে একটি কনসোল তৈরি করতে দেয় যাতে আপনাকে বিকাশের পরিবেশে একটি পরীক্ষা প্যাকেজটি ব্যবহার করার জন্য আপনার জেমফাইলে আপডেট করার দরকার নেই
ডিলান পিয়ার্স

199

আমি নিম্নলিখিত পদ্ধতিতে এটি করি:

  • স্যান্ডবক্স মোডে পরীক্ষার পরিবেশে রেল কনসোলটি শুরু করুন।

    rails console -e test --sandbox
    

আপনার দুটি কারণে এটি প্রয়োজন:

  1. আপনার যে কোনও পরিবর্তনগুলি আবার ঘুরিয়ে দেওয়া হয়।
  2. আপনার যদি ইতিমধ্যে কিছু বীজ ডেটা থাকে তবে এটি হতে পারে যে কারখানাগুলি 1 থেকে গুণাবলীর ক্রমিককরণ শুরু করবে, তবে এই রেকর্ডগুলি ইতিমধ্যে বিদ্যমান থাকতে পারে।

তারপরে কনসোলে:

  • ফ্যাক্টরিবট (ফ্যাক্টরিগার্ল নামে পরিচিত) প্রয়োজন:

    require 'factory_bot'
    
  • কারখানার সংজ্ঞা লোড করুন:

    FactoryBot.find_definitions
    
  • FB- এ সমস্ত কল উপসর্গ এড়াতে FactoryBot পদ্ধতি অন্তর্ভুক্ত করুন FactoryBot ( createপরিবর্তে FactoryBot.create) :

    include FactoryBot::Syntax::Methods
    

PS মিথ্যা রত্নের জন্য আপনি রেলস কনসোলটিতে সংজ্ঞাটি লোড করতে পারেন:

Fabrication.manager.load_definitions

এছাড়াও require 'faker'যদি আপনি এটি ব্যবহার।


শেষ লাইন হওয়া উচিত require 'ffaker'?
ডিহাইড্রাল

এটি আপনি কোন রত্ন ব্যবহার করেন - ফেকার বা ফাফেকারের উপর নির্ভর করে তবে আমি সম্মত হই যে ইদানীং ffaker বেশি ব্যবহৃত হয়।
আলেকজান্ডার

আমি fixture_file_uploadActionDispatch::TestProcess
অপরিজ্ঞাত

4
আপনি যদি কনসোলটি প্রচুর পুনরায় চালু করতে থাকেন তবে এখানে একটি ওয়ান লাইনার রয়েছে:require "factory_bot_rails"; include FactoryBot::Syntax::Methods; require 'ffaker'
মিরর 318

4
রেল 6.0 এর জন্য এই জাতীয় কনসোলটি চালান:rails c -e test --sandbox
ডেভিড মোরেলস

26

আপনার প্রয়োজন require 'factory_bot_rails', যা আসল রত্ন যা রেলগুলি ব্যবহার করছে। এই রত্নটিতে কারখানা বট গ্রন্থাগার তৈরি করা অন্তর্ভুক্ত থাকবেFactoryBot উপলব্ধ করা হবে।

আপনি হয় এটি করতে পারেন, বা মন্টনল্যাম্বের উত্তরের মতো শুরুতে আপনার জেমফাইলে আপডেট করতে পারেন।


যেহেতু আমি আমার কারখানাগুলিতে ফেকার ব্যবহার করছিলাম, আমাকেও চালাতে হয়েছিল require 'faker'
আলবার্তস্কি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.