Я собираюсь предложить ответ, потому что комментарии не допускают никакого форматирования. Вот что: Что-то происходит на стороне сервера, и jQuery не получает то, что вы думаете. Вот выдержка из документации jQuery:
ошибка (jqXHR, textStatus,
errorThrown) Функция Функция, которая будет
вызывается в случае сбоя запроса.
Функция получает три аргумента:
jqXHR (в jQuery 1.4.x,
XMLHttpRequest) объект, строка
описывающий тип ошибки, которая
произошло и необязательное исключение
объект, если таковой возник. Возможный
значения для второго аргумента
(кроме нуля) "тайм-аут", "ошибка",
"abort" и "parsererror". Когда
Произошла ошибка HTTP, errorThrown
получает текстовую часть
Статус HTTP, например «Не найдено» или
«Внутренняя ошибка сервера.»
Это означает, что ваш контроллер может отвечать чем-то, кроме ожидаемых данных. В этом контроллере попробуйте:
Rails.logger.debug render_to_string(:partial => "followings/follow")
В любом случае, проверьте свои журналы, чтобы убедиться, что то, что вы думаете, происходит на самом деле. Кроме того, напишите тест, чтобы проверить это:
# controller spec... modify if using Test::Unit
it "sends cool javascript" do
xhr.post :unfollow, :id => 83, :data-method => "delete"
response.body should == "some known response"
end
Хорошо, это хакерская, хрупкая спецификация, но она будет действовать, пока вы не узнаете, где что-то идет не так.
Как только вы это заработаете, все остальное аккуратно встанет на свои места.