2010-10-29 56 views
3

我正试图在Stack Overflow上实现一种类似于此处的投票系统。 (使用Rails 3)我想不重新加载页面所要做的投票,所以我有这样的代码Rails:link_to with:remote => true不起作用

link_to("/tags/#{tag.id}/upVote", :remote => true) 
我/视图/ tags目录

所以我有一个文件名为_upVote.js.erb我当这个链接被点击时,思想会被调用,但事实并非如此。它试图处理给予好评的HTML,这是错误我得到

缺少模板标签/给予好评与{:格式=> [:HTML]

而且,这里是我的我的路线文件

match "tags/:id/upVote" => "tags#upVote" 

任何想法,我可以得到这个工作?

+0

我删除了答案,因为这不是正确的答案。 – Swanand 2010-10-29 06:42:41

回答

6

如果您在空白新页面中收到此错误消息,则表示您的远程调用不起作用,并且调用不是通过Ajax请求完成的。您需要检查您的布局是否正确加载了jQuery和jQuery Rails连接器:http://github.com/rails/jquery-ujs

然后使用Firefox + Firebug检查该调用是否确实是Ajax调用。

0

类型有点像你的Rails应用程序根目录内:

rails g jquery:install 

,然后里面你application.html.erb添加一行

<%= javascript_include_tag :defaults %> 

或明确的(不要忘了单独包括您的jQuery):

<%= javascript_include_tag :rails, :application %> 

[编辑:对于Rails 3.1或更高版本,使用asse t管道]

使用gem jquery-rails(如上所述)并将以下行添加到app/assets/javascripts /应用程序。JS(如果它们不存在的话):

//= require jquery 
//= require jquery_ujs 

希望这有助于!

相关问题