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このようにして、イベントに簡単にフックし、エラー ケースを簡単に処理できます。これがどれほど良い習慣なのか、私はただ疑問に思っています。jQuery が失敗したことを認識できるように、別の http コードを返すことはできますか?

4

2 に答える 2

4

もちろん。それがエラーコードの目的です。ただし、必ず適切なHTTP ステータス コードを選択してください。

于 2012-09-12T08:31:43.130 に答える
2

です。アクションで起こったことに対応するステータス コードを常に返す必要があります。ステータス コードでカバーされる多くのケースがあります。

于 2012-09-12T08:33:19.707 に答える