Rails 3 ajax响应未执行

我正在为我的应用程序创建一个简单的ajaxfunction,用户可以通过链接增加“like count”。

我已设法获取运行我的控制器代码的链接,浏览器正在收到响应,但响应未执行。

类似链接部分:

.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'); 

没有别的。

当我在浏览器中按下like链接时,rails log告诉我它已经渲染了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标记。

  
alert('2');

我怀疑这不是浏览器想要回来的。 此外,在ajax请求期间查看firebug控制台时,发送请求后没有任何反应。

有人可以找出为什么这不起作用? 我发现的每个教程和指南都和我在这里做的一样。

首先,确保内容类型正确:

 curl --head -X POST http://localhost:8080/.... 

我相信Content-Type应该是text/javascript

其次,我认为您要禁用布局,以便DIV不会出现在输出中。

 def up @like = current_user.likes.create( :question_id => params[:question_id], :like => true ) respond_to do |format| format.js { render :partial => 'up', :layout => false } end end 

或者可以在整个控制器中禁用它

 layout false 

它以一种简单的遥控forms发生在我身上。

重新启动服务器后工作,即使是开发环境。

希望我浪费时间拯救某人。

最好的祝福。