2013-04-16 3 views
2

У меня есть два простых заводов:Как использовать самостоятельные ассоциации в FactoryGirl?

factory :parent_category, :class => Category do 
    name "Garden" 
    parent_id 0 
    display_order 1 
end 

factory :category do 
    association   :parent_id, factory: :parent_category 
    name     "Tools" 
    associated_categories "" 
    postfix_to_display '' 
    display_order   1 
end 

Однако, когда я пытаюсь произвести завод с помощью:

f = FactoryGirl.create(:category) 

Я получаю следующую ошибку:

NoMethodError: undefined method `to_i' for #<Category:0x007fdf50495c00> 

Я использую Rails 3.2.12 и FactoryGirl 4.2.

+0

Можем ли мы взглянуть на ассоциации в вашей модели 'category'? – depa

+0

Ваш вопрос помог мне правильно построить FactoryGirl с внутренней ассоциацией соединения. Я сделал то, что вам нужно, чтобы исправить вашу проблему, но не то, что вы сделали, чтобы создать свою проблему :) –

ответ

2

Try:

factory :category do 
    association :parent, factory: :parent_category 
    ... 
end 
+0

Новая ошибка: NoMethodError: undefined method 'parent = 'для # <Категория: 0x007faed4f9aff8> – Jason

+1

Как ваши ассоциации настроены в модели? – gylaz

+1

В моей модели модели отсутствовали отношения самосоединения, я добавил следующее «принадлежит_от: parent,: class_name =>« Категория »и использовал решение, предоставленное gylaz ... теперь он работает, спасибо, ребята! :) – Jason

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