从控制器返回到Ajax的数据混乱

时间:2015-03-31 18:19:49

标签: javascript jquery ruby-on-rails ajax coffeescript

我在我的一个咖啡脚本中有一个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,它会进入“错误”状态。块。

1 个答案:

答案 0 :(得分:0)

每当ajax失败时(例如,如果路由错误或控制器方法中的任何错误等),那么只有它才会出现错误。无论bookNULL还是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成功块中,您可以检查该标志。