我正在创建一个简单的Ajax功能到我的应用程序中,用户可以通过链接增加“like count”。未执行Rails 3 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');
没有别的。
当我按下浏览器之类的链接轨登录TELS我,这已使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>
我怀疑这不是浏览器想要回来的东西。在ajax请求期间查看Firebug控制台时,发送请求后也不会发生任何事情。
有人可以找出为什么这不起作用吗?我发现的每一个教程和指南都和我在这里做的一样。
谢谢man :)禁用布局解决了这个问题。 curl说,即使在ajax开始工作之后,Content-Type仍然是text/html。 – Mika
也许你可以做渲染:js =>'up'或渲染:partial =>'up',:format =>'json' –
这也只是为我修复,尽管我从来没有必须包含它。任何想法为什么会奏效? –