Я создаю простую функцию AJAX в своем приложении, где пользователь может увеличить количество лайков по ссылке.
Мне удалось получить ссылку для запуска кода моего контроллера, и браузер получил ответ, но ответ не выполнен.
Ссылка "Мне нравится" частично:
.likes
.like_up
= link_to( image_tag('/images/thumb_up.png'), '/like/' + question.id.to_s, :remote => true)
#like_count
= 22# question.likecount
.like_down
= link_to( image_tag('/images/thumb_down.png'), '/dislike/' + question.id.to_s, :remote => true)
И это входит в likes_controller:
def up
@like = current_user.likes.create( :question_id => params[:question_id], :like => true )
respond_to do |format|
format.js
end
end
Тогда в моем up.js.haml у меня просто есть отладочный javascript:
alert('2');
и ничего больше.
Когда я нажимаю ссылку "аналог" в браузере, журнал рельсов сообщает мне, что он сделал js.haml
...
Rendered likes/up.js.haml within layouts/application (104.9ms)
Completed 200 OK in 923ms (Views: 116.3ms | ActiveRecord: 20.1ms)
И когда я смотрю на ответ, который получает браузер, он, безусловно, выглядит как up.js.haml, отображаемый в макете моего приложения, в котором размещается тег yield.
<div class='content'>
alert('2');
</div>
Я подозреваю, что это не то, что браузер хочет вернуть. Также при просмотре консоли firebug во время запроса ajax ничего не происходит после отправки запроса.
Может кто-нибудь узнать, почему это не работает? Все учебники и руководства, которые я нашел, делают это так же, как и здесь.