我有一个与附件模型具有has_one关系的Anexo模型
class Anexo < ApplicationRecord
validates :descricao, presence: true, uniqueness: true
has_one :attachment, dependent: :restrict_with_error, validate: true
end
class Attachment < ApplicationRecord
validates :nome, :tamanho, :anexo, presence: true
belongs_to :anexo
end
在我的AnexosController中,
def update
@anexo.build_attachment(attachment_params)
respond_to do |format|
if @anexo.update(anexo_params)
format.html { redirect_to @anexo, notice: 'Anexo was successfully updated.' }
format.json { render :show, status: :ok, location: @anexo }
else
format.html { render :edit }
format.json { render json: @anexo.errors, status: :unprocessable_entity }
end
end
end
当我创建新记录时,everythig工作正常,当我将atachment留空时会显示正确的错误消息。
当我编辑此注册表并且不选择任何附件时,它会显示该消息,但外键设置为nil。
如果我取消操作并返回,则记录已更新且anexo不再具有旧附件。
您是否想知道是否可以阻止在build_attachment中发生此更新?