Próbuję automatycznie zapisać formularz dla akcji Post # new. Co minutę, chcę POST, aby opublikować # autozapisywanie, a następnie sprawdzę najpierw_lub_czas tworzenia i zapisz/zaktualizuję rekord w tabeli Postów. Mój problem polega jednak na tym, że nie mogę już uzyskać dostępu do parametrów POST z formularza. Staram się zrobić to tak:Automatyczne zapisywanie formularza w Railsach za pomocą AJAX
$(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);
}
mam tę drogę:
post 'posts/autosave', as: :autosave_post_path
Problem polega na tym, log serwera pokazuje hash params jako jedyny zawierający: akcja oraz: kontrolera. Jak uzyskać dostęp do odpowiednika tego, co zostałoby wysłane w ramach danych POST.
Ty jesteś tym człowiekiem! Dzięki wielkie. Przejrzałem dokumenty, które łączyłeś, nie jestem pewien, co dokładnie robisz, czy masz szansę na głębsze zrozumienie, które mógłbyś streścić? Dzięki jeszcze raz. – mackshkatz
"Metoda .serialize() tworzy ciąg tekstowy w standardowej notacji zakodowanej za pomocą adresu URL.", Tzn. Serializuje treść formularza jako "param1 = wartość1 i parametr2 = wartość2 i ... & parametrN = wartośćN", a następnie Railsy zostają unserializowane z powrotem do obiektu . – moonwave99
@mackshkatz Można pomyśleć o serializacji jako zapętleniu wszystkich elementów formularza w formularzu i zebraniu danych, które zostaną przesłane w jeden długi ciąg. Zostanie to wysłane w żądaniu POST do kontrolera szyn. Jeśli byłaby to prośba GET, byłaby odpowiednikiem utworzenia dla ciebie ciągu zapytania, w oparciu o wartości wprowadzone w polach formularza. – ChrisC