2011-01-22 104 views
0

我想通过link_to在rails(3.0.3)视图中发出一个简单的ajax请求。Rails 3 ajax javascript渲染问题

​​

这个想法是,在LikesController#toggle中的动作会在请求返回后呈现一些Javascript来改变页面。相当简单的东西,对吧?

我遇到的问题是该操作似乎无法找到正确的* .js.erb文件。在LikesController#切换动作相关的片段是:

respond_to do |format| 
    format.html { redirect_to post_path(@post) } 
    format.js 
end 

当我尝试发出这个请求,执行该操作,但要求有500 Internal Server Error响应。错误的文字是:

Missing template likes/toggle with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:js, :html], :locale=>[:en, :en]}... 

我有双重和三重检查我的_toggle.js.erb文件的位置和相信我已经把它命名权,并且其内容是有效的(虽然这并不重要,因为它从未完成)。

只是在js文件中做一个没有花哨的ajax的常规GET返回完全相同的错误,所以问题出现在Rails渲染链的某处。

我不会将方法的其余部分包括进来,因为它非常详细,我相信它不会将这个问题考虑进去,但是如果有人认为它很重要,我会发布它。

谢谢!

编辑: 修复了这个问题。这是我自己愚蠢的错,我把它看成是一个部分,在它之前有一个下划线。删除,整个事情完美的作品。白痴,白痴,白痴。

回答

0

您需要有一个名为toggle.rjs This RailsCast的独立模板,虽然稍显过时,但仍然可以解释toggle.rjs文件中的内容。