По сообщению в блоге Симоне Карлетти , помощники Rails 3 ajax сильно изменились.Мы должны написать больше javascript с rails 3, чем мы привыкли с rails 2.
Я попытался выяснить, как отобразить gif загрузки ajax - пока выполняется запрос ajax - в "rails 3"путь".Я придумал такой код, который использует события javascript, отправленные драйвером UJS Rails 3.В этом примере используется прототип:
<div id="wait" style="display:none">
<img src="/images/ajax-loader.gif"> Please wait...
</div>
<div>
<%= link_to 'Get', 'finished', :id => "mylink", :remote => true %>
</div>
<%= javascript_tag do %>
Event.observe('mylink', 'ajax:before', function(event) {
$('wait').show();
});
Event.observe('mylink', 'ajax:complete', function(event) {
$('wait').hide();
});
<% end %>
Это работает хорошо, но я бы хотел, чтобы можно было записывать эти "триггеры" событий ajax с помощью прототипа и помощников сценариев, как, например, когда мы используем функцию link_to_function:
<%=
link_to_function("toggle visibility") do |page|
page.toggle "wait"
end
%>
Есть ли способ сделать это, или мы должны написать ajax-события "триггеры" непосредственно в javascript, либо прототип, либо jquery?
С уважением,
Филипп Ланг