1

我有如下代码(它是一个远程表单)

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 知道发生了故障?

4

2 回答 2

4

当然。这就是错误代码的用途。但请确保您选择了正确的HTTP 状态代码

于 2012-09-12T08:31:43.130 回答
2

这是。您应该始终返回与您的操作中发生的事情相对应的状态代码,并且状态代码涵盖了许多情况。

于 2012-09-12T08:33:19.707 回答