我在我的會員控制器下面的代碼:軌道4 - 更新前刪除另一個表中的行
def update
@member.phone_numbers.destroy_all
respond_to do |format|
if @member.update(member_params)
format.html { redirect_to @member, notice: 'Member was successfully updated' }
else
format.html { render action: 'edit' }
end
end
end
我必須更新成員之前,從PHONE_NUMBERS刪除現有的記錄,因爲電話號碼必須再次插入(由於可能的訂單更改和其他原因,但沒關係)。
現在的問題是:它的工作原理,但如果成員未能更新,所有的電話號碼將被刪除。
如果@ member.update失敗,可以採取什麼措施來避免此問題?
它工作完美。非常感謝你! – stefanobaldo
小修改:使用_Member.transaction do_而不是_Member.transaction.do_ – stefanobaldo
編輯修正錯字和歡呼聲。 –