如何使用 Rails 3 cookie 和助手?
我创建了一个用户并将 id 存储在永久 cookie 中:
def save_user_id_cookie
cookies.permanent.signed[:user_id] = @user_id
end
这是一个 链接。
然后尝试访问它:
helper_method :current_user
private
def current_user
@current_user = @current_user || User.find(cookies.signed[:user_id])
end
这是一个 链接。
我在我的机器上看到了 cookie,但是当我尝试加载主页时,我得到:
Couldn't find User without an ID
app/controllers/application_controller.rb:8:in `current_user'
控制器是 此处。
I created a user and stored the id in a permanent cookie:
def save_user_id_cookie
cookies.permanent.signed[:user_id] = @user_id
end
Here is a link.
and then try to access it:
helper_method :current_user
private
def current_user
@current_user = @current_user || User.find(cookies.signed[:user_id])
end
Here is a link.
I see the cookie on my machine but when I try to load the homepage I get:
Couldn't find User without an ID
app/controllers/application_controller.rb:8:in `current_user'
The controller is here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
相信这一行
应该是
*旁注:对于更少的代码,您可以尝试分配像
Believe this line
should be
*side note: for little less code you can try assigning like
在您的
save_user_id_cookie
中:@user_id
为零。我认为你应该使用@user.id
代替。In your
save_user_id_cookie
:@user_id
is nil. I think you should use@user.id
instead.试试这个:
注意 cookies 前面的 *。
是的,正如
@nash
指出的那样,user_id
实际上应该是user.id
。我没有费心去寻找错误,正如你所说,你可以在你的机器上看到cookie。
Try this:
Notice the * before the cookies.
and yes, as
@nash
pointed out, thatuser_id
should be actuallyuser.id
.I didn't bother to look there for errors, as you said that you could see the cookie on your machine.