7

Post#newアクションのフォームを自動保存しようとしています。毎分かそこらで、Post#autosaveにPOSTしたいので、first_or_createをチェックして、Postsテーブルのレコードを保存/更新します。私の問題は、フォームからPOSTパラメータにアクセスできなくなったことです。私はそのようにそれをやろうとしています:

$(function() {
  if ($("#new_post").length > 0) {
    setTimeout(autoSavePost, 60000); 
  }    
});

function autoSavePost() {
  $.ajax({
    type: "POST",
    url: "/posts/autosave",
    dataType: "script",
    success: function(data) {
      console.log(data);
    }
  });
  setTimeout(autoSavePost, 60000);
}

私はこのルートを持っています:

post 'posts/autosave', as: :autosave_post_path

問題は、サーバーログにparamsハッシュが:actionと:controllerのみを含むものとして表示されることです。POSTデータの一部として送信されたものと同等のものにアクセスするにはどうすればよいですか。

4

3 に答える 3

13

serializeメソッドdataを介して、パラメーターも渡す必要があります。

$.ajax({
  type: "POST",
  url: "/posts/autosave",
  data: $("#new_post").serialize(),
  dataType: "script",
  success: function(data) {
    console.log(data);
  }
});
于 2013-02-20T22:23:43.447 に答える
1

serialize() 関数を見てみましょう: http://api.jquery.com/serialize/ : これを使用してデータの配列を作成し、コントローラーにパラメーターとして渡すことができます。

于 2013-02-20T22:23:33.723 に答える