0

我正在构建一个应用程序,用户可以在其中提交帖子并对其进行投票。

我需要找到一种方法来允许用户删除他们的投票。

correct_user我在 my 下启动了一个私有方法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 %>
4

1 回答 1

0

我最终把它放在我的删除链接中:

vote_path(link.votes.where(user_id: current_user).first)

我将不得不重构并清理一下,但这就是回答这个问题的原因。

于 2013-08-14T04:16:25.890 回答