說我有兩個表,trees
和和一個連接表tree_apples
。假設tree_apples
表有幾個重要列,分別叫做rotten
(boolean)和branch
(int)。Rails update_nested_attributes。如果存在,HOw會進行更新,如果不存在則創建?
說,在控制器trees
,我有這樣的:
@tree.update_nested_attributes(tree_params)
和我tree_params
方法是這樣的:
tree_apple_params: {
:apple_id,
:rotten,
:branch
}
說,我已經更新有tree_apple與ID樹3即rotten: true
和branches: nil
和傳入參數到此控制器更新分支具有這樣的參數:
tree_apple_params: [{
apple_id: 3,
rotten: nil,
branch: 5
},
{
apple_id: 4,
rotten: nil,
branch: 6
},
...
]
所以這是params來創建或更新一堆tree_apples
。參數來自的頁面想要更新tree_apple
的分支,該分支引用3的apple_id
,並且對於此tree_apple
,它不提供任何關於腐爛狀態的輸入。我不想創建另一個tree_apple
,它引用apple_id: 3
對於rotten_state具有nil
。我想更新現有的tree_apple
。所以,對於這個tree_apple
,我想找到它,然後更新它與分支5.但對於參考蘋果,不存在此樹上的所有其他參數,我想創建新tree_apples
如果tree_apple
不存在。
有沒有辦法做到這一點?這個邏輯是否屬於控制器或模型中的某種回調?
@jwan沒有能夠解決問題了嗎? – George