我有如下代码(它是一个远程表单)
def something
@user = User.find_by_email(params[:email])
@success = true
@error = nil
if !@user
@success = false
@error = "No such user"
elsif !@user.some_condition
@success = false
@error = "User did not pass condition"
end
respond_to do |format|
format.json { render "my_json_view",:status => @success ? 200 : 403 }
end
end
在my_json_view
我做类似的事情:
json.response do |json|
if @success
json.success true
# data I need here
else
json.success false
json.error @error
end
end
这样,我可以轻松地挂钩ajax:error
事件,并轻松处理错误情况。我只是想知道这是多么好的练习。是否可以返回不同的 http 代码,以便 jQuery 知道发生了故障?