tutorial rails factorybot example create bot ruby-on-rails factory-bot seed

ruby on rails - rails - ¿Cómo puedo usar Factory Girl en db/seeds?



factorybot create (5)

¿Es posible hacer esto?

Si es así, ¿cómo puedes hacerlo?


(Esta respuesta funciona en rieles 3.0.7)

Descubrí que el problema es cómo configura el Gemfile : debe hacer algo en la línea de

gem ''factory_girl'' group :test do gem ''factory_girl_rails'' end

Encontramos problemas al tener factory_girl_rails fuera del :test entorno de :test , que no logramos llegar al fondo (¿tal vez algo que ver con la forma en que los rieles hacen el almacenamiento en caché de clase?)

Una vez hecho esto, me gusta cargar datos de una biblioteca en lib, algo como ...

require ''factory_girl'' require ''spec/factories/user_factory'' module Seeds class SampleUsers def self.run u = Factory(:user) end end

Y luego ejecutando este método desde db:seed usando

Seeds::SampleUsers.run



Puede insertar el siguiente código en su spec_helper.rb, y crear algunas instancias de los datos que desea (en este caso, "productos" del archivo 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


Todo lo que necesita hacer es agregar require ''factory_girl_rails'' al archivo db/seeds.rb . Esto le dará acceso a sus fábricas.


en db / seeds.rb

require ''factory_girl_rails'' 10.times do FactoryGirl.create :user end