簡體   English   中英

更新嵌套屬性時,Rails 4創建重復項

[英]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_parametercontactsocialaddress另一個副本時。 這有什么問題呢?

您是否包含要更新的模型的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM