首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从rails 3中的控制器访问登录用户

如何从rails 3中的控制器访问登录用户
EN

Stack Overflow用户
提问于 2011-07-13 03:40:47
回答 3查看 375关注 0票数 1

我正在尝试在Rails3中创建一个登录系统,在这个系统中,我不仅可以从视图访问登录的用户,还可以从控制器/模型级别访问登录的用户。原因是我想根据特权系统调整功能,在特权系统中,登录的用户可以执行与未登录的用户不同的功能。

到目前为止,我尝试从railstutorial.com, chapter 9实现登录系统。

当我仅从视图使用登录系统时,它可以正常工作。但是,如果我尝试通过控制器使用系统,则会得到错误undefined method 'cookie_jar' for nil:NilClass

感谢您提供的任何帮助或最佳实践,您可以为创建身份验证系统提供帮助或最佳实践,在该系统中,可以从控制器识别登录用户。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-13 03:47:11

这里最好的建议可能是“不要”。如果您想要一个身份验证系统,可以使用像Devise这样的东西-它花费了大量的时间和精力来确保作恶者不能进入

如果您希望不同的用户执行不同的功能,这就是访问控制,为此,您可能需要cancan或ACL之类的东西

并且您希望从模型级别访问已登录的用户?再说一次,最佳实践是“不要”。模型应该对当前登录的用户不感兴趣--这是控制器的事。

(也就是说,规则有时会被破坏-如果您正在进行审计跟踪,并且需要存储有关做出更改的用户的信息,例如,将当前登录的用户传递给模型可能是最好的答案……)

最后,如果您真的、真的想从头开始做这些事情,请看一下this railscast

票数 4
EN

Stack Overflow用户

发布于 2011-07-13 04:05:45

一种非常简单的方法就是像railscast中提到的那样:http://railscasts.com/episodes/20-restricting-access正如屏幕演员中提到的那样,您可以使用插件acts as authenticated (http://www.railsrocket.com/acts_as_authenticated-plugin)来满足您的所有用户模型需求。

票数 0
EN

Stack Overflow用户

发布于 2011-07-13 04:07:37

如果一切都按照本教程完成,那么您应该能够从控制器和视图中获得current_user。Ryan Bates还提供了另一个关于在asciicasts.com上进行身份验证的教程。如果您刚刚开始使用Rails,您可能想要探索一下它,但对于实际应用程序,强烈建议使用DeviseAuthLogic,它们都经过了彻底的测试并不断发展。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6670063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档