2015-03-05 3 views
0

У меня есть эти модели:Невозможно сделать has_many realtionship с Factory Girl

class Company < ActiveRecord::Base 
    has_many :terminal_values 
end 

class TerminalValue < ActiveRecord::Base 
    belongs_to :company 
end 

И это spec/factories.rb:

FactoryGirl.define do 
    factory :company do 
    sequence(:code){|n| n + 1000 } 
    end 

    factory :terminal_value do 
    company 
    end 
end 

Чтобы проверить has_many отношения Я написал этот тест:

it do 
    company = create(:company) 
    create(:terminal_value, company: company) 
    expect(company.terminal_values.first).to_not eq(nil) 
    end 

Но тест не удался. Что я делаю не так?

+1

Это может помочь https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md#associations, https://github.com/thoughtbot/factory_girl/issues/549 – Sontya

+0

Я мог бы пройти тест с помощью 'ожидать (company.reload.terminal_values.first)'. Благодаря! – ironsand

ответ

0

Даже если в вашем примере вы предоставляете компании для терминала объекта, при объявлении завода вы должны обеспечить полное определение, вы можете попробовать это:

завод: компания делать последовательности (: код) {| п | п + 1000} конца

завода: terminal_value сделать компанию {построить (: компания)} конца

также вывесить ошибку вы получаете при выполнении теста.

+0

Я попытался с вашим примером, но результат не изменился, насколько я заметил. Я мог бы решить проблему, следуя советам @Sontya. В любом случае, спасибо за ваш ответ! – ironsand

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