【问题标题】:Rails 3 ajax javascript rendering issueRails 3 ajax javascript渲染问题
【发布时间】: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


    【解决方案1】:

    您需要有一个名为 toggle.rjs This RailsCast 的单独模板,虽然有点过时,但仍然解释了在 toggle.rjs 文件中放入的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多