Hartl Rails教程 - 种子用户密码

时间:2015-07-30 03:29:14

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

我正在通过迈克尔哈特尔的优秀Rails教程,我正试图围绕种子用户的一个方面。我刚刚完成了第9章,所以我有一个具有管理员权限的工作登录/注销/编辑/删除系统。作为本章的一部分,我们在fixtures文件中创建了一些虚拟用户:

michael:
  name: Michael Example
  email: michael@example.com
  password_digest: <%= User.digest('password') %>
  admin: true

我的问题是:如何以michael@example.com身份登录?我不清楚密码是什么。相关说明,创建通用“管理员”用户的最佳做法是什么?我应该使用夹具,还是应该在部署应用程序之前通过Rails控制台将数据库添加到数据库?

感谢您的帮助!

编辑 - 这是指向BitBucket存储库的链接:https://bitbucket.org/jonathan_buck/sample_app/overview

3 个答案:

答案 0 :(得分:4)

您正在从字符串&#34;密码&#34;

生成密码摘要
User.digest('password')

因此,用户的密码是&#34;密码&#34;

答案 1 :(得分:1)

密码未按原样保存在数据库中。而是保存相同的摘要/安全版本。 #digest方法接受一个参数并输出摘要版本。

因此,从技术上讲,设置密码是&#34;密码&#34;。但是在数据库中,你会发现它是乱码。

有道理吗?

答案 2 :(得分:0)

解决主要问题什么是数据库种子。 db / seed.rb是一个非常漂亮的东西,可以帮助您快速为一些测试用户提供种子。你可以看到它有.rb扩展名,所以这是一个普通的ruby程序没什么不寻常的。您可以访问所有模型,无需从控制台手动输入所有内容。 好吧,我想你已经从之前的答案中找到的密码处理是什么。只需看一下方法摘要,SitePoint上就完成了关于如何对用户进行身份验证的文章。 对于您的最后一个问题,请查看this article,它将帮助您理解概念