Обновление Rails до 3.1 - изменение обработки ajax с "render :update" на respond_to

Я обновляю старое приложение на rails до версии 3.1. Приложение в основном работает, но мне нужно обновить некоторые ajax функции. (Если это имеет значение, я использую jquery и coffeescript)

Вся существующая функциональность ajax была написана с использованием render :updates. eg

render :update do |page|
  page.remove "financial_tran_offset_#{params[:ftof_id]}"
  page.replace_html 'details', :partial => 'details', :locals => {:obj => @fire}
end

Я думаю, что новый предпочтительный способ сделать это - использовать блок respond_to? для обработки js, но я не уверен в лучшем способе обработки этих различных случаев.

Для первого случая (page.remove) я думаю, что с помощью линии передачи активов, я должен иметь внешний js в /app/assets/javascripts/ для обработки javascript стороны (например, page.remove), но я не уверен, как передать параметры в js файл. Я предполагаю, что можно сделать что-то вроде:

respond_to do |format|  
  format.js {:render :js => {:ftof => params[:ftof_id]}
end

но я не уверен, как это можно передать из js-файла. Это правильный способ передачи информации в js? Или есть другой метод, который я должен использовать?

Для второго случая (page.replace_html) я думаю, что он был устаревшим/удален из 3.1 (согласно apidock). Я снова подозреваю, что это должно использовать js файл в каталоге app/assets/javascript, но не уверен, как я должен идти о рендеринге частичного и передавать эту информацию в js.

Спасибо за любые подсказки в этой области =)

8
задан Dave Smylie 26 January 2012 в 21:06
поделиться