0

我正在尝试学习如何在我的 Rails 应用程序中使用 AJAX,所以我决定从简单的事情开始。我有一个博客应用程序,用户可以在该应用程序上对任何博客文章进行投票。这是我的代码posts#vote

post_controller.rb

class PostsController < ApplicationController
  (...)
  def vote
    post = Post.find(params[:id])

    if current_user.voted_on?(post)
      current_user.unvote_for(post)
    else
      current_user.vote_for(post)
    end

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

这是我的链接代码posts#view

视图.html.erb

<%= link_to "Vote", vote_post_path(post.id), :remote => true %>

现在,如果我单击我的Vote链接,posts#vote则操作有效并进行了投票,但是我收到了一个错误:

ActionView::MissingTemplate(缺少模板帖子/投票,应用程序/投票与 {:handlers=>[:haml, :coffee, :erb, :builder], :locale=>[:en], :formats=>[:js , :html]}。

我的文件夹中有(空)vote.rjs文件,views/posts但由于某种原因,rails 看不到它。根据错误,rails 搜索的唯一文件扩展名是.haml,.coffee和. 该列表不应该还有扩展名吗?提前致谢。.erb.builder.rjs

4

2 回答 2

2

你的文件应该被称为vote.js.erb. Rails 不使用.rjs扩展。

于 2012-06-20T19:37:55.573 回答
1

.rjs扩展最初用于RailsPrototypeJS 库。

Rails 3.1默认库切换到 JQuery。

如果你想.rjs在你的 Rails 项目中使用它,那就意味着使用 Prototype 而不是 JQuery。最重要的是prototype-rails

于 2012-06-20T19:45:36.813 回答