Давайте попробуем подытожить, как вы все организовали.
Поместили ли вы файлы jquery и плагины в папку: / public / javascripts?
В вашем основном файле макета (/app / views / layout) вы загружаете скрипты?
<%= javascript_include_tag 'jquery-1.4.4.min' %>
<%= javascript_include_tag 'rails' %>
<%= javascript_include_tag 'jquery-ui-1.8.7.custom.min' %>
<%= javascript_include_tag 'application' %>
Вам следует избавиться от всех других javascript-скриптов, включая прототип.
Вам не обязательно нужен файл application.js для тестирования.Вы можете просто поместить свой ajax-код в раздел HEAD своего представления.
Этот ajax-код должен быть заключен в $ (document) .ready () следующим образом:
<script type="text/javascript">
$(document).ready(function() {
$('.delete_phone').bind('ajax:success', function() {
$(this).closest('tr').fadeOut();
});
});
</script>
Всписок телефонных номеров (внутри HTML-таблицы), этот код удаляет 1 строку, когда вы нажимаете на соответствующую ссылку для удаления, подобную этой:
<%= link_to image_tag("editdelete.png", :size => "16x16", "Delete Phone"),
{ :controller => 'phone_controller',
:action => 'destroy_phone',
:id => phone },
:method => :delete, :confirm => "Are you sure?",
:remote => true, :class=>'delete_phone'
%>
Изменяет ли что-то подобное организацию вашего кода?
РЕДАКТИРОВАТЬ:
Вы должны изменить несколько вещей в файле phone_controller:
def destroy_phone
@phone = Phone.find(params[:id])
@phone.destroy
respond_to do |format|
format.js { render :nothing => true }
end
end
Запишите код response_to.Он сообщает rails, что это действие javascript и что контроллер не должен отображать ничего, кроме js.