现在在一个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对应的条目的更新操作出错失败了,请问各位大大有优雅的解决方案吗?
렌더링용 Ajax 패키지 만들기
-
response.error(msg)
-
response.success()
-
response.warn()
json 객체를 생략하고
return response.error(msg)
을 호출합니다. 이렇게 하면 if else 중첩이 무너질 수 있습니다. 저는 Ruby 구문에 익숙하지 않습니다. 어떻게 생각하시나요?
배열을 사용하여
res = [{:qid => 1, :status => "success"}, {:qid => 2, :status => "success"}, {:qid => 3, :status => "fail"}, {:qid => 4, :status => "success"}]
과 같은 각 qid의 업데이트 결과를 기록하고 이 res를 json 형식으로 프런트 데스크에 다시 렌더링하여 프런트 데스크에서 각 qid가 성공적으로 업데이트되었는지 알 수 있습니다.시작/끝, 구조, rasie를 사용하고 예외를 포착하고 처리하도록 하세요
예외를 포착한 후 현재 실패한 ID 항목을 기록하고 다음 주기를 계속합니다
마지막으로 녹음된 실패ID를 프런트에 반납하시면 됩니다
이러한 키워드를 통해 구체적인 구문을 검색하실 수 있을 거라 믿습니다