Подтвердить что ты не робот

Как я могу использовать Factory Girl in db/seed?

Можно ли это сделать?

Если да, как вы можете это сделать?

4b9b3361

Ответ 1

(Этот ответ работает в rails 3.0.7)

Я обнаружил, что улов - это то, как вы настраиваете Gemfile - вам нужно что-то делать в строках

gem 'factory_girl'

group :test do
  gem 'factory_girl_rails'
end

Мы обнаружили проблемы с factory_girl_rails за пределами тестовой среды, которой нам не удалось разобраться (возможно, что-то связано с тем, как rails выполняет кэширование классов?)

Как только это будет сделано, мне нравится загружать данные из библиотеки в lib, что-то вроде...

require 'factory_girl'
require 'spec/factories/user_factory'

module Seeds

  class SampleUsers

    def self.run
    u = Factory(:user)
  end
end

И затем запустить этот метод из db: seed, используя

Seeds::SampleUsers.run

Ответ 2

Все, что вам нужно сделать, это добавить "require" factory_girl_rails "сделать файл db/seeds.rb. Это даст вам доступ к вашим заводам.

Ответ 4

в db/seeds.rb

require 'factory_girl_rails'

10.times do
  FactoryGirl.create :user
end

Ответ 5

Вы можете вставить следующий код в свой spec_helper.rb и сделать некоторые экземпляры данных, которые вы хотите (в данном случае "продукты" из файла yaml):

seeds_file = File.join(Rails.root, 'db', 'seeds.yml')
config = YAML::load_file(seeds_file)
config["products"].each do |product|
  FactoryGirl.create(:product, product) if !Product.find_by_name(product['name'])    
end