【问题标题】:Adding associated records while updating a record rails在更新记录轨道时添加关联记录
【发布时间】:2018-06-13 07:53:02
【问题描述】:
 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】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-07
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多