0
我只是不知道他們是爲了什麼。之前我認爲他們很容易填充外鍵,但現在我發現情況並非如此。嵌套工廠的要點是什麼?
# 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工廠一個全新的用戶,並且用戶_狀態的ID根本沒有設置。這種行爲如何有用?
我根本看不到任何有關嵌套工廠的用法。它們是什麼以及關聯方法?
請使用有意義的變量名稱而不是'user_0_something',很難知道你的意圖。 –
我沒有測試任何東西,所有我關心的問題是嵌套表對創建的過渡數據庫條目的影響。 – Starkers
我知道你沒有測試某些東西。我很難用這些變量名來理解這個問題,我不知道它們是什麼。 –