我正在构建一个用户可以提交帖子并对其进行投票的应用程序。
我需要找到一种方法来允许用户删除他们的投票。
我在correct_user
下启动了一个名为votes_controller
的私有方法,但我不太清楚如何将当前用户的投票ID提取到特定帖子。我想一旦我有了ID,我可以将它传递给一个实例变量,我可以在其上调用vote_path(@vote), method: :delete
。
但是,现在我还不太清楚如何为特定用户在特定帖子上投票选择正确的ID。
我在@vote = current_user.votes.find_by_id(params[:id])
方法中做了current user
,但显然这不起作用。不太确定如何解决这个问题。任何帮助都会很棒。
votes_controller.rb:
before_filter :correct_user, only: [:destroy]
def destroy
@vote.destroy
flash[:notice] = "Your vote has been deleted"
redirect_to root_path
end
private
def vote_params
params.require(:vote).permit(:user_id, :post_id, :up)
end
def correct_user
@vote = current_user.votes.find_by_id(vote_params[:post_id)
redirect_to root_path if @vote.nil?
end
并从我的观点来看:
<%= link_to "delete", vote_path(@vote), method: :delete %>
答案 0 :(得分:0)
我最终把它放在我的删除链接中:
vote_path(link.votes.where(user_id: current_user).first)
我将不得不重构并清理一下,但这就是回答这个问题的原因。