0

我正在尝试使用以下代码来检查是否正在保存数据:

$parent.find('button[name=save]').click(function () {
  $.ajax({
    url: "/help.json",
    data: {"data": handsontable.getData()}, //returns all cells' data
    dataType: 'json',
    type: 'POST',
    success: function (res) {
      if (res.result === 'ok') {
        $console.text('Data saved');
      }
      else {
        $console.text('Save error');
      }
    },
    error: function () {
      $console.text('Save error, not working');
    }
  });
});

我正在使用rails作为服务器端代码。如果我手动创建 /help.json.erb 并将以下内容添加到页面

{
  "result": "ok"
}

当我尝试使用 ajax 代码时,我收到一条“数据已保存”消息。

但是,如果我尝试使用 ruby​​ 创建 /help.json 文件,则会收到“保存错误,无法正常工作”错误。我在控制器中创建 /help.json 文件的 ruby​​ 代码如下:

class StaticPagesController < ApplicationController
 respond_to :html, :json

  def home
  end

  def help
      the_hash = {"result"=>"ok"}
      respond_with(the_hash) 
  end
end

上面的代码生成一个 /help.json 文件

{"result": "ok"}

但我没有收到“数据已保存”消息

当我手动创建 json 文件但尝试使用 ruby​​ 时它可以工作的原因是什么?

我的路线文件的相关部分是:

  root to: 'static_pages#home'
  match '/help',    to: 'static_pages#help'

进一步检查,我收到的错误消息为 500(内部服务器错误)

4

1 回答 1

0

我通过使用这里的答案解决了这个问题:

Rails respond_with 在索引和创建方法中的作用不同

我将 response_with 语句更改为:

   respond_with({:result => "ok"}, :location => nil)
于 2013-03-17T15:45:52.823 回答