この質問のフォローアップ:下書きの投稿を保存するための RESTful な方法は何ですか?
作成された送信は常にレールの「作成」アクションに送信されるのではないかと思っています。どうやって作ることができますか:
- 最初の自動保存はエントリを作成します
- 後続のすべての自動保存により、保存されたエントリが更新されます
- 最終提出は同じエントリを更新します
詳細については、まず関連する質問を参照してください。また、私は Post モデルでこれを行っており、true または false のフィールド「ドラフト」を追加しました。私のjQueryの提出は次のとおりです。
$(document).ready(function() {
$('#new_post').append('<div class="temp"> </div>');
setInterval(function() {
{ $('#new_post .temp').html('<input type="hidden" name="post[draft]" id="post_draft" value="true" />');
draft = $('#draft');
}
$('#post_form form[data-remote]').submit();
$('#new_post .temp').html('');
}, 1000*30); // 1000ms * 60s = 1m
});
このファイルは、隠しフィールド「下書き」を作成し、フォームを送信してから、フィールドを削除します。
また、使用できる可能性のある別のファイルは create.js.erb です。フォームがコントローラーに送信されると、この埋め込まれた Ruby JavaScript ファイルが呼び出されて実行されます。現在、次のような変数「ドラフト」をファイルで使用できるようにしています。
<% if draft %>
#maybe putting code here can change the form to submit to "update" action next time?
<% else %>
# code that executes if it's a final submission, updating tables etc..
<% end %>
たぶん、このファイルは私のタスクを達成するための場所ですか?
さらに情報が必要な場合は、お知らせください。