Дополнение к этому вопросу: какой способ RESTful сохранять черновики сообщений?
Мне интересно, созданные представления всегда подчиняются действию «создать» в рельсах. Как я могу сделать:
- Первое автосохранение создает запись
- Все последующие автосохранения обновляют сохраненную запись
- Окончательное представление обновляет ту же запись
Для получения информации сначала см. связанный вопрос. Кроме того, я делаю это в модели Post, где я добавил поле «черновик», которое может быть истинным или ложным. Мое представление 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. В настоящее время я делаю переменную "draft" доступной для файла, так что:
<% 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 %>
Может быть, этот файл - место для выполнения моей задачи?
Если требуется дополнительная информация, дайте мне знать.