Maison > Questions et réponses > le corps du texte
现在在一个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
Créer un package ajax pour le rendu
- response.error(msg)
- response.success()
- response.warn()
Omettez l'objet json et appelez return response.error(msg)
Faire cela peut briser une partie de l'imbrication if else. Je ne connais pas la syntaxe Ruby, juste une idée. Qu'en pensez-vous ?
怪我咯2017-04-22 08:57:54
Vous pouvez utiliser un tableau pour enregistrer le résultat de la mise à jour de chaque qid, tel que res = [{:qid => 1, :status => "success"}, {:qid => 2, :status => "success"}, {:qid => 3, :status => "fail"}, {:qid => 4, :status => "success"}]
, et restituer cette réponse à la réception au format json, afin que la réception sache si chaque qid a été mis à jour avec succès
PHP中文网2017-04-22 08:57:54
Utilisez début/fin, sauvetage, rasie, assurez-vous d'attraper et de gérer les exceptions
Après avoir détecté l'exception, enregistrez l'entrée d'identifiant en échec actuelle et continuez avec le cycle suivant
Enfin, retournez simplement l'ID de panne enregistré à la réception
Je pense que vous pouvez rechercher la syntaxe spécifique à l'aide de ces mots-clés