在更新记录轨道时添加关联记录

问题描述 投票:0回答:1
 def upload_new_incident_attachments
    @attachments.each do |attachment|
        if record.new_record?
          record.images.build(attachment: attachment)
        else
          record.images.create(attachment: attachment)
        end
    end
end

如果父模型被创建(保存时),构建相关记录将自动保存,如果存在验证错误(包括子级和父级),子属性将不会被保存,我不知道如何处理这个更新父模型,

def update
   if record.update_attributes(incident_params)
     upload_new_record_attachments if @attachments
   end
end

如果在创建子记录时存在验证错误,则父模型已经更新,是否有任何方法可以在单个提交中更新(创建子记录和更新父记录),或者任何其他方式

ruby-on-rails paperclip nested-attributes
1个回答
1
投票

在构建或创建子关联之前,您可以检查其父模型是否有效

def update
  # Assign attributes to the parent model
  record.assign_attributes(incident_params)

  if record.valid?
    # Builds or creates images only when there are no validation errors
    upload_new_record_attachments if @attachments

    # Now you can save it and make sure there won't be any validation errors
    record.save
  end
end
© www.soinside.com 2019 - 2024. All rights reserved.