2016-07-22 2 views
0

Я хочу интегрировать factory_girl в среду разработки rails для быстрого создания записей. Однако каждый раз, когда я открываю консоль рельсов и выполняю некоторые действия, состояние последовательности всегда начинается с нуля, что приводит к ошибке нарушения уникальности. Такие как:Как правильно правильно установить заводскую среду в среде разработки rails?

FactoryGirl.define do 
    factory :user do 
    name 'Jim' 
    email 
    end 

    sequence :email do |n| # every time n begins at 0 
    "#{n}@exmaple.com" 
    end 
end 

У вас есть несколько простых решений для решения этой проблемы? Спасибо!

+0

Возможная Дубликат [Рельсы: Как избежать ошибок дублирования в Factory Девочка ... я делаю это неправильно?] (Http://stackoverflow.com/questions/7072199/rails-avoiding-duplication-errors-in-factory-girl-am-i-doing-it-wrong) –

+0

Вот чего я хочу. Спасибо! – Run

ответ

0

Вам нужно заявление последовательности внутри определения :user фабрики:

FactoryGirl.define do 
    factory :user do 
    name 'Jim' 
    sequence :email do |n| 
     "#{n}@exmaple.com" 
    end 
    end 
end 
0

Вы можете установить начальное значение n, если вы хотите. Вы можете достичь этого:

FactoryGirl.define do 
    factory :user do 
    name 'Jim' 
    sequence :email, 100 do |n| 
     "#{n}@exmaple.com" 
    end 
    end 
end 

или

FactoryGirl.define do 
     factory :user do 
     name 'Jim' 
     sequence(:email, 100) { |n| "person#{n}@example.com" } 
     end 
end 

примечание:n = 100 in this case для получения дополнительной информации ознакомьтесь с документацией here

Смежные вопросы