从零开始的投票系统

Voting system from scratch

我是 rails 的新人,我想为我的应用程序做一个投票系统,用户可以在其中投票给 post,我称之为 "Idee"。用户只能为 post 投票一次,而 post 只能被投票。我为我的 post 定义了一个列 "like" 并且我这样做了:

控制器

def upvote
  @idee = Idee.find(params[:id])
  @idee.like += 1
  redirect_to :back, notice: "Thank you for voting!"
end

路线

get 'upvote' => "idees#upvote"

查看

<%= link_to "up", controller: "idees", action: "upvote", id: @idee %>

但是它不起作用,当我点击 "up" link 时,我可以从我的控制器中看到句子 "Thank you for voting!" 但没有投票。

我该怎么做才能使这项工作正常进行?

你应该像这样保存你的对象

def upvote
  @idee = Idee.find(params[:id])
  @idee.like += 1
  @idee.save
  redirect_to :back, notice: "Thank you for voting!"
end