我使用Sorcery在Rails中设置身份验证,我正在尝试创建一个模型,其中用户的用户ID链接作为输入数据模型的引用,但是我收到错误:
Couldn't find User without an ID
它引用以下代码:
def create
@user = User.find(params[:user_id])
@certificate = @user.certificates.create(certificate_params)
redirect_to certificate_path(@certificate)
end
要回答我自问过的基本问题,用户已登录...
答案 0 :(得分:1)
如果以上内容真的是您的代码,那实际上是一个非常奇怪的错误。你应该得到像Couldn't find Bar with 'id'=
这样的东西。如果你根本没有向find
提供args,那么通常只会给出上述错误。 User.find()
无论如何,这里的根本问题是params[:user_id]
不包含您期望的值,并且可能根本不包含任何值。您还没有足够的其他代码来确定原因,但它并不重要...
除非您希望人们只能更改URL并为系统中的其他用户添加证书,否则您不应该依赖params[:user_id]
来创建关联对象,您应该使用{ {1}} - 这就是整个身份验证的一种方式。
所以:
current_user