Ruby on Rails 3
在我的控制器中,index()是定义实例变量。昨天这很好用。今天我收到了这个错误:
Couldn't find User without an ID
app/controllers/grandstreamers/resellers_controller.rb:7:in `block in index'
app/controllers/grandstreamers/resellers_controller.rb:5:in `each'
app/controllers/grandstreamers/resellers_controller.rb:5:in `index'
这是我的控制器代码:
4 @certs = Certificate.all
5 @certs.each do |h|
6 @id = h.user_id
7 if @train = (User.find(@id).reseller_id)
8 end
9 end
为什么要找一个没有ID的用户?这是一件好事。我希望我的用户有ID。
如果删除循环,则错误消失。我也尝试过:
@certs = Certificate.all
@certs.each do |h|
@id = h.user_id
if (User.find(@id).reseller_id)
@train == User.find(@id).reseller_id
end
end
同样的错误,有什么建议吗?谢谢
答案 0 :(得分:1)
看起来你有没有user_id的证书记录。删除该记录,或者更好的是,在证书模型中添加一些验证以确保填充此字段。
或者,如果您将If行更改为if (User.find(@id))