ActiveRecord :: RecordNotFound无法找到没有ID的用户

时间:2013-11-04 20:05:51

标签: ruby-on-rails activerecord ruby-on-rails-4

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

votes_controller:

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的用户”

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

谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

更改

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

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

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