Ho parlato di chiamate Ajax che corrispondono solo a un'azione in un certo controller.
Di solito avrei un'azione in controller (chiamiamolo "like" action), e per fare una chiamata ajax, io farei:
In vista, <%= link_to "like", like_path, :remote => true %>
e in parte js file, qualcosa di simile $(".some_class").html("<%= j render "some_partial" %>");
Quindi, verrà effettuata una chiamata ajax non ostruttiva.
Questa volta, voglio una semplice chiamata ajax: quando clicco su un link, voglio sostituire un div con un altro div. Ma la funzione viene eseguita prima di fare clic sul collegamento.
In vista,
$(function teacher_function(){
$(.become_teacher).html("<%= j render "become_teacher" %>");
});
<div class="become_teacher">
change this div
</div>
<%= link_to_function "ajax call", "teacher_function()" %>
e in _become_teacher.html.erb, ho some message
da inserire nel div classe dive_teacher.
Questo sembra un problema javascript molto semplice, maVolevo sapere il modo più convenzionale per farlo in un'app Rails perché tutti i documenti Rails eseguono sempre chiamate Ajax corrispondenti a una determinata azione in un controller.
risposte:
1 per risposta № 1Comincerei con la sintassi legale e sensoriale prima:
function teacher_function() {
$(".become_teacher").html("<%= j render "become_teacher" %>");
}
<div class="become_teacher">
change this div
</div>
<%= link_to_function "ajax call", "teacher_function()" %>
Non c'è Ajax qui, però.