От Rails 2 до Rails 3: использование link_to вместо link_to_remote (включая удаленное и обновление)

Быстрый и простой ответ, я уверен. Я обновляю проект Rails с версии 2 до версии 3 и заменяю загрузку link_to_remote на link_to в соответствии с обновлением Rails 3. Даже что-то такое простое, как:

<%= link_to "Check Time",
        {:action=>:get_time}, :remote=>true, :update=>'current_time' %>
<div id='current_time'></div>

не работает. Запрос (с использованием метода get) проходит нормально, и отображаемый html:

<a href="/monitoring/get_time" data-remote="true" update="current_time">Check Time</a> 

Запись Routes.rb:

get "monitoring/get_time"

Как я уже сказал, я уверен, что это очень очевидная проблема с моей стороны!


person detheridge02    schedule 01.04.2011    source источник


Ответы (2)


Параметр :update не поддерживается новым link_to :remote => true.

Вам придется либо

  • используйте устаревший плагин
  • написать JS/AJAX самостоятельно вместо использования :remote => true
  • использовать render :update { |page| p.replace_html ... }
person Marcel Jackwerth    schedule 01.04.2011
comment
Вам не нужно полностью заменять :remote =› true. Используйте его и привяжите встроенные события обратного вызова из rails.js: 'ajax:before', 'ajax:complete', 'ajax:success', 'ajax:failure'. - person Martin Svalin; 26.06.2012
comment
Статья Ненавязчивый JavaScript в Rails 3 немного устарела (8 июня 2010 г.), но содержит несколько примеров привязки к эти события. - person Jared Beck; 09.02.2013