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');
    }
  });
});

サーバー側のコードにレールを使用しています。/help.json.erb を手動で作成し、以下をページに追加すると、

{
  "result": "ok"
}

ajax コードを試すと、「データが保存されました」というメッセージが表示されます。

ただし、/help.json ファイルを ruby​​ で作成しようとすると、「保存エラー、機能していません」というエラーが表示されます。/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ファイルを手動で作成すると機能するのに、ルビーで試してみると機能しない理由は何ですか?

私のルートファイルの関連部分は次のとおりです。

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

さらに調べてみると、500 (内部サーバー エラー) でエラー メッセージが表示されます。

4

1 に答える 1

0

私はここで答えを使用してこの問題を解決しました:

Railsのrespond_withは、インデックスとcreateメソッドで異なる動作をします

reply_withステートメントを次のように変更しました。

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