【发布时间】:2011-06-13 13:24:12
【问题描述】:
我正在尝试通过 link_to 在 rails (3.0.3) 视图中发出一个简单的 ajax 请求。
<%= link_to "like", toggle_author_likes_path(current_author, post), :remote => true %>
这样的想法是 LikesController#toggle 中的操作将呈现一些 Javascript 以在请求返回后更改页面。相当简单的东西,对吧?
我遇到的问题是该操作似乎无法找到正确的 *.js.erb 文件。 LikesController#toggle 动作中相关的 sn-p 是:
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 渲染链的某个地方。
我不会包含该方法的其余部分,因为它非常冗长,我相信它不会影响这个特定问题,但如果有人认为它很重要,我会发布它。
谢谢!
编辑: 修复了问题。这是我自己的愚蠢错误,我将视图命名为部分视图,并在其前加上下划线。删除,整个事情完美无缺。白痴,白痴,白痴。
【问题讨论】:
标签: ruby-on-rails ruby ajax