我正在使用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
答案 0 :(得分:2)
您的代码似乎都是正确的。
尝试运行迁移,这似乎是问题所在。当你运行这个
rails generate acts_as_votable:migration
您还需要运行迁移
rake db:migrate
检查迁移是否在最新版本中,如果这不起作用,请重新启动rails服务器,但如果它说无法找到该表,那么您只是没有运行迁移,或者他们返回错误,或在迁移完成后手动删除表。请查看这些案例,以便我们可以放弃这些选项