[英]Rails 4 creates duplicates when updating nested attributes
我已經嘗試過將ID列入白名單,這無濟於事,無論如何都會創建重復項。
模型:
accepts_nested_attributes_for :address, :social, :contact, :talent_parameter
我通過的屬性:
model_attributes = {
talent_parameter_attributes: {
},
contact_attributes: {
agency_link: base_url + href
},
social_attributes: {
},
address_attributes: {
}
}
update_model(model, model_attributes)
我設置的權限:
def self.update_model(model, attrs)
params = ActionController::Parameters.new(model: attrs)
model_params = params.require(:model)
model_params = model_params.permit(
:company,
:age,
:avatar,
:gender,
:contact_id,
talent_features: [],
talent_parameter_attributes: [:id, :weight_lbs, :dress, :shoe, :chest, :waist, :hips, :height_ft],
contact_attributes: [:id, :agency_link],
social_attributes: [:id]
)
model.update(model_params)
end
我不明白 每次創建talent_parameter
, contact
, social
和address
另一個副本時。 這有什么問題呢?
您是否包含要更新的模型的ID ? 在Rails API中 ,它指出“對於沒有ID鍵的每個哈希,將實例化一條新記錄”。
所以試試這個:
model_attributes = {
talent_parameter_attributes: {
},
contact_attributes: {
id: 7,
agency_link: base_url + href
},
social_attributes: {
},
address_attributes: {
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.