Rumah > Soal Jawab > teks badan
现在在一个rails项目中我是想在页面中选中一系列的条目,然后利用ajax向后端传递这一系列条目的id,然后在数据库中更新这些条目中的一些字段内容
下面是我现在的实现代码
@qids = params[:qids]
@qids.each do |id|
question = Question.find_by(:id => id, :boxname => "un-matched".to_s)
if question.nil?
if Question.find_by(:id => id).update(:boxname => "un-matched".to_s)
else
render :json => {:status => "error", :msg => "database error cannot move question to target bucket"}
end
else
render :json => {:status => "error", :msg => "question already exists in this bucket"}
end
end
render :json => {:status => "ok"}
我现在的话就是在这一系列的更新操作中,假如有一次更新操作出错失败了,就直接返回error给前台了,之后的更新操作也不执行,想问下,如果我想即使有一些出错了,后面的更新操作也还照样执行,但是最后也能返回给前端页面是那几个id对应的条目的更新操作出错失败了,请问各位大大有优雅的解决方案吗?
高洛峰2017-04-22 08:57:54
Buat pakej ajax untuk render
- response.error(msg)
- response.success()
- response.warn()
Abaikan objek json dan panggil return response.error(msg)
Melakukan ini boleh memecahkan sebahagian daripada if else bersarang saya tidak biasa dengan sintaks ruby , sekadar idea.
怪我咯2017-04-22 08:57:54
Anda boleh menggunakan tatasusunan untuk merekodkan hasil kemas kini setiap qid, seperti res = [{:qid => 1, :status => "success"}, {:qid => 2, :status => "success"}, {:qid => 3, :status => "fail"}, {:qid => 4, :status => "success"}]
, dan menjadikan res ini kembali ke meja depan dalam format json, supaya meja depan mengetahui sama ada setiap qid telah dikemas kini dengan jayanya
PHP中文网2017-04-22 08:57:54
Gunakan permulaan/akhir, penyelamatan, rasie, pastikan untuk menangkap dan mengendalikan pengecualian
Selepas menangkap pengecualian, rekod entri id semasa yang gagal dan teruskan dengan kitaran seterusnya
Akhir sekali, hanya kembalikan ID kegagalan yang direkodkan ke meja depan
Saya percaya anda boleh mencari sintaks tertentu melalui kata kunci ini