问题描述现在在一个rails项目中我是想在页面中选中一系列的条目,然后利用ajax向后端传递这一系列条目的id,然后在数据库中更新这些条目中的一些字段内容下面是我现在的实现代码@qids=params[:qids]@qids.eachdo|id|question=Question.find_by(:id=>id,:boxname=>"un-matched".to_s)ifquestion.nil?ifQuestion.find_by(:id=>id).update(:boxname=>"un-matched".to_s)elserender:json=>{:status=>"error",:msg=>"databaseerrorcannotmovequestiontotargetbucket"}endelserender:json=>{:status=>"error",:msg=>"questionalreadyexistsinthisbucket"}endendrender:json=>{:status=>"ok"}我现在的话就是在这一系列的更新操作中,假如有一次更新操作出错失败了,就直接返回error给前台了,之后的更新操作也不执行,想问下,如果我想即使有一些出错了,后面的更新操作也还照样执行,但是最后也能返回给前端页面是那几个id对应的条目的更新操作出错失败了,请问各位大大有优雅的解决方案吗?
2 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
给render做个ajax封装-response.error(msg)-response.success()-response.warn()省去json对象,调用returnresponse.error(msg)这样做可以拆开部分ifelse嵌套,对ruby语法不熟悉,仅想法,你意下如何?
FFIVE
TA贡献1797条经验 获得超6个赞
可以用一个array记录每个qid的更新结果,比如res=[{:qid=>1,:status=>"success"},{:qid=>2,:status=>"success"},{:qid=>3,:status=>"fail"},{:qid=>4,:status=>"success"}],把这个res以json的格式render回前台,这样前台就知道每个qid是否更新成功了
添加回答
举报
0/150
提交
取消
