显示upvote计数

时间:2017-04-24 22:49:16

标签: ruby-on-rails ruby rubygems

我正在使用gem文件acts_as_votable。目前,当我点击“赞”按钮时,似乎它正在工作,闪光灯通知显示“你喜欢它!”但是,我想跟踪每次评论我有多少喜欢。所以,我在index.html.erb文件中添加了这行代码(如下所示),但我收到一条错误消息:“无法找到表'投票'”

<td><%= link_to 'Like', like_review_path(review), method: :post%>
(<%=review.get_upvotes.size%>)</td>

这是我在reviews_controller.rb文件中的内容:

class ReviewsController < ApplicationController
before_action :set_review, only: [:show, :edit, :update, :destroy, :upvote]

  def upvote
   @review = Review.find(params[:id])
   @review.upvote_by @current_user
   flash[:notice] = 'You liked the review!'
   redirect_to :back
  end

这是我的routes.rb文件:

  resources :reviews do
   member do
    post "/like", to: "reviews#upvote"
  end
 end

最后,这是我在review.rb文件中的内容:

class Review < ApplicationRecord
  acts_as_votable
  belongs_to :user
end

1 个答案:

答案 0 :(得分:2)

您的代码似乎都是正确的。

尝试运行迁移,这似乎是问题所在。当你运行这个

rails generate acts_as_votable:migration

您还需要运行迁移

rake db:migrate

检查迁移是否在最新版本中,如果这不起作用,请重新启动rails服务器,但如果它说无法找到该表,那么您只是没有运行迁移,或者他们返回错误,或在迁移完成后手动删除表。请查看这些案例,以便我们可以放弃这些选项