我在我的一个咖啡脚本中有一个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
现在,这个&#39;书籍/标题&#39;(来自控制者)应该可以在我的咖啡脚本中通过数据&#39;变量(在咖啡脚本中)。正确?
我的问题是它什么时候会出现错误&#39;块(用于咖啡脚本)?我可以看到我的书#39;对象是NULL(在控制器中),但它仍然是成功的&#39;块(在咖啡脚本中)..我想如果json对象是NULL,它会进入“错误”状态。块。
答案 0 :(得分:0)
每当ajax失败时(例如,如果路由错误或控制器方法中的任何错误等),那么只有它才会出现错误。无论book
是NULL
还是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
,您的方法都可以正常运行。
您可以检入控制器,如果book对象为NULL,则返回一些标志,然后在AJAX成功中检查该变量。
例如:
{{1}}
然后在AJAX成功块中,您可以检查该标志。