我的一个coffee脚本中有一个AJAX调用,它指向控制器的一个方法。AJAX调用如下:
auto = ->
$.ajax
url : '<method_name>'
type : 'POST'
data :
<variable_name>: $('element').val()
success: (data, status, response) ->
alert('Pass')
error: ->
alert('Fail')
我在控制器中的方法看起来像:
def method
...
...
<book> object can be invalid object.
respond_to do |format|
format.json { render json: {book: {title: title}} }
end
end
现在,这个"book/title"(来自控制器)应该可以通过"data"变量(在咖啡脚本中)在我的咖啡脚本中使用。正确的
我的问题是,它什么时候会进入"错误"块(对于咖啡脚本)?我可以看到我的"book"对象为NULL(在控制器中),但它仍然在"success"块中(在咖啡脚本中)。。我想如果json对象为NULL,它就会进入"error"块。
每当ajax失败时(例如,如果存在路由错误或控制器方法中的任何错误等),只有它会进入错误块。在这里,无论book
是否为NULL
,您的方法都可以正常工作,没有错误。您可以在控制器中检查,若book对象为NULL,则返回一些标志,然后在AJAX中检查该变量是否成功。例如:
def method
...
...
<book> object can be invalid object.
if book.nil?
format.json { render json: {is_data_null: true} }
else
respond_to do |format|
format.json { render json: {book: {title: title}} }
end
end
end
然后在AJAX成功块中,您可以检查该标志。