1

我为用户做了一个简单的投票系统

投票控制器:

def create
  @user = User.find(params[:id])
  @vote = Vote.create(author_uid: current_user.uid)
  @user.votes << @vote

  redirect_to root_url
end

查看文件:

- @users.each do |user|
  %tr
    %td= user.id
    %td= link_to user.username, user.url
    %td
      = link_to 'Like', {:controller => "votes", :action => "create" }, :method => "post"

但是,如果我投票给用户,则会出现错误“找不到没有 ID 的用户”

希望您能帮助解决这个问题。如果您需要更多信息,请发表评论。

谢谢!

4

2 回答 2

2

您没有在方法中传递id参数link_to

这就是为什么params[:id]当您尝试在服务器上查找它时不存在的原因

于 2013-11-04T20:09:01.730 回答
1

改变

link_to 'Like', {:controller => "votes", :action => "create" }, :method => "post"

link_to 'Like', {:controller => "votes", :action => "create", :id => user.id }, :method => "post"

此外,您不会在创建投票对象后保存您的用户对象。

于 2013-11-04T20:12:26.187 回答