Если вы хотите немного изучить Javascript, я считаю, что делать то же самое в jQuery - быстро и легко. Похоже, вы все еще делаете AJAX-вызовы, просто у поведения link_to_remote
были неблагоприятные побочные эффекты.
Если ваш код вида Rails выглядит следующим образом:
<%= link_to "Show me", slow_page_url, :class => 'remote', :'data-update' => 'display' %>
Мне нравится добавлять блок jQuery следующим образом:
<% content_for :dom_ready do %>
// register a callback for the click event on links with class 'remote'
$('a.remote').click( function() {
// this is the clicked_link, which you may want to
// persist thru several levels of callbacks
// so assign it to a local variable
var clicked_link = this;
// assuming you already have a start_spinner function,
// and you might pass it the object where the click occured
start_spinner(clicked_link);
// here's the ajax call, which will automatically update
// the div you identified using the data-update attribute
// with the returned html
$('#'+$(this).attr('data-update')).load( $(this).attr('href'), {}, function() {
//this callback only runs when the AJAX request has completed
stop_spinner( clicked_link );
} );
// prevents the click event from propagating to the window object
//and moving the user away from the current page
return false;
} );
<% end %>
Тогда у меня есть вся моя загрузка javascript внизу моего макета, вот так
<%= javascript_include_tag 'jquery-1.3.2.js' %>
<script type="text/javascript">
$( function() {
<%= yield :dom_ready %>
);
</script>