Использование factory_girl в грабли - получение неинициализированной константы - PullRequest
5 голосов
/ 10 ноября 2011

Я пытаюсь использовать Factory Girl в задании на грабли, как это:

require 'factory_girl'
require File.expand_path("spec/factories.rb")

namespace :users do

  desc "Create sample users for use in development" 
  task :create_sample_users => :environment do
    Factory(:user, :email => "pending@acme.com")
    Factory(:approved_user, :email => "user@acme.com") 
  end

end

Однако, когда я запускаю rake users:create_sample_users, я получаю ошибку uninitialized constant Entry (Entry - это имя одного из классов моего приложения).

Может кто-нибудь сказать мне, как заставить девушку из Фабрики видеть мои занятия? В моих тестах он работает нормально, просто не справляется с заданиями по рейку.

Ответы [ 2 ]

11 голосов
/ 10 ноября 2011

Я предполагаю, что Rails не загрузил ваши модели в тот момент, когда вам требуются фабрики.Попробуйте это:

require 'factory_girl'

namespace :users do

  desc "Create sample users for use in development" 
  task :create_sample_users => :environment do
    require File.expand_path("spec/factories.rb")
    Factory(:user, :email => "pending@acme.com")
    Factory(:approved_user, :email => "user@acme.com") 
  end

end
0 голосов
/ 20 октября 2015

@ Ответ dmcnally не сработал для меня, так как я получал странные ошибки не найденных констант. Вместо этого я решил это, обстреливая рельса бегуна:

sh "rails runner 'FactoryGirl.create :user'"
...