Zajmowałem się wywołaniami ajaxowymi, które odpowiadają tylko działaniu w określonym kontrolerze.
Zwykle miałbym działanie w kontrolerze (nazwijmy to "jak" akcję), a żeby wykonać wywołanie ajax, zrobię:
Z uwagi, <%= link_to "like", like_path, :remote => true %>
iw częściowym js plik, coś w stylu $(".some_class").html("<%= j render "some_partial" %>");
Następnie zostanie wykonane jednoznaczne wywołanie ajaxowe.
Tym razem chcę prostsze wywołanie ajax: kiedy kliknę link, chcę zastąpić div innym divem. Ale funkcja jest uruchamiana, zanim kliknę link.
Z uwagi,
$(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()" %>
i w _become_teacher.html.erb, mam some message
do umieszczenia w klasie div div.
Wydaje się to bardzo prostym problemem javascript, aleChciałem poznać najbardziej konwencjonalny sposób robienia tego w aplikacji Rails, ponieważ wszystkie dokumenty Railsowe zawsze wywołują wywołania ajaxowe, które odpowiadają określonej akcji w kontrolerze.
Odpowiedzi:
1 dla odpowiedzi № 1Zacznę od sensownej, legalnej składni:
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()" %>
Jednak nie ma tutaj Ajaxu.