Я просто не знаю, для чего они предназначены. До того, как я подумал, что они легко заполняют иностранные ключи, но теперь я вижу, что это не так.В чем смысл вложенных заводов?
# User attributes: id, name, password
factory :user_0, class: User do
id 0
name "Jimmy"
password "Jimson"
end
# Status attributes: id, user_id, content
factory :user_0_statuses, class: Status do
association :user, factory: :user_0
factory :user_0_status_0 do
id 0
content "noo"
end
factory :user_0_status_1 do
id 1
content "yees"
end
end
Когда: user_0_status_0 и: user_0_status_1 заводы .create
d в спецификации, я думал, что эта установка завод создаст следующую информацию в базе данных (обратите внимание на статус user_id записей.):
users
id | name | password
0 | Jimmy | Jimson
statuses
id | user_id | content
0 | 0 | noo
1 | 0 | yees
Но вместо этого он создает это:
users
id | name | password
0 | Jimmy | Jimson
0 | Jimmy | Jimson
statuses
id | user_id | content
0 | nil | noo
1 | nil | yees
в принципе, новый пользователь на основе user_0 фабрики создается для каждого вложенного завода статуса и user_ id статуса не установлен вообще. Как это поведение полезно?
Я просто не вижу никакого использования в отношении вложенных заводов. Для чего они и метод ассоциации?
Пожалуйста, используйте значимые имена переменных вместо 'user_0_something', трудно понять ваши намерения. –
Я ничего не тестирую, все, о чем я забочусь в этом вопросе, - это влияние вложенных таблиц на созданные элементы временной базы данных. – Starkers
Я знаю, что ты что-то не испытываешь. Мне просто сложно понять вопрос с такими именами переменных, я не знаю, для чего они нужны. –