Rails 3 - vote_fu - 查询投票人对投票的具体投票

时间:2011-03-07 21:16:59

标签: ruby-on-rails-3 activerecord plugins

我正在尝试查询vote_fu插件中的特定投票,以便我可以销毁它。我需要这样做,因为我实施了每个用户政策的一票,但我希望用户能够删除投票。

所以我所拥有的是一个可投票的链接模型,以及用户作为选民。从理论上讲,我不应该做类似的事情:

@link.votes.find_by_user_id(current_user.id).destroy

虽然投票不是支持方法,因为它不是我在数据库中构建的表。我已经阅读了vote_fu的文档,我似乎无法找到/或弄清楚我应该如何销毁选票。

def destroy
      @vote = Vote.find(params[:id])
      @vote.destroy

      respond_to do |format|
        format.html { redirect_to(user_votes_url) }
        format.xml  { head :ok }
      end
    end

在vote_fu的lib中,所以我应该可以在投票时调用destroy,我只需要能够找到投票。

无论如何,谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

我正以错误的方式解决这个问题。我的最终代码如下:

def unvote
    @link = Link.find(params[:id])
    @vote = current_user.votes.find_by_voteable_id(@link.id)
    @vote.destroy
    redirect_to :back
  end

然后在我看来:

<%= link_to "Delete Vote", unvote_topic_link_path(@topic, link), :method => :delete %>

和我的路线,如果你想要了解所有事情的全貌:

resources :links do
      member do
        post 'vote'
        delete 'unvote'