gpt4 book ai didi

mysql - 未定义的方法 `digest' 与 rails 4.0.1

转载 作者:行者123 更新时间:2023-11-30 23:09:34 28 4
gpt4 key购买 nike

我正在学习 使用 Rails 4 进行敏捷 Web 开发 并且已经到了创建用户的地步。它是这样做的:

rails generate scaffold User name:string password:digest

但是当我尝试运行 rake db:migrate 时,我收到以下错误:undefined method digest'

这是什么原因造成的,我该如何解决?我在 Google 上搜索到 digest 是一个 rails 4 特性,怎么会出现问题呢?

最佳答案

编辑:

以下信息不完全正确。似乎此生成器功能的文档记录很少,但确实存在。在生成器中使用 password:digest 只是在名为 :password_digest 的迁移中创建一个字符串列并添加 has_secure_password到模型。可以找到有关此功能的教程 here .


我在 Rails 4 Migrations Guide 中没有看到能够定义 password:digest 的提及.我也没有在实际的 Rails 4 稳定版中看到它 source .

你是对的 this page提到它是您可以做的事情,但是,似乎此功能已被删除或尚未进入 Rails 4 稳定版。

就修复它而言,似乎在 Rails 4 稳定版中,这些是您可以通过迁移定义的字段:

t.column
t.index
t.rename_index
t.timestamps
t.change
t.change_default
t.rename
t.references
t.belongs_to
t.string
t.text
t.integer
t.float
t.decimal
t.datetime
t.timestamp
t.time
t.date
t.binary
t.boolean
t.remove
t.remove_references
t.remove_belongs_to
t.remove_index
t.remove_timestamps

您可能必须将密码存储为字符串(但不要误以为我说的是“将纯文本密码存储为字符串”(!)...您仍然希望至少对其进行哈希处理并且可能加盐。)这个视频应该对在 Rails 中执行此操作提供很多帮助:Authentication in Rails .

身份验证是一个复杂的问题,可能需要进行一些研究才能正确完成,但这是非常值得的。我强烈建议首先观看该视频并对 Rails 中的用户身份验证有一个基本的了解,然后可能会研究一些您可以使用的强化 gem。使用现有的 gem 既有功能齐全的好处,也有开源社区久经沙场的好处。如果您找到适合您需求的正确 gem,并且得到很好的审查和积极维护,它通常会比您自己构建的更好。

关于mysql - 未定义的方法 `digest' 与 rails 4.0.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20445184/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com