ruby-on-rails - 密码摘要方法在 localhost 但不是 Heroku 上运行? (Hartl RubyOnRails 教程第 7 章)

标签 ruby-on-rails heroku railstutorial.org

我一直在研究 Hartl 的优秀 RoR (3.2) 教程(并在整个过程中部署到 Heroku),并且对为什么 Heroku 版本不再反射(reflect)本地托管应用程序的行为感到困惑。

我在第 7.4.4 节的末尾:http://ruby.railstutorial.org/chapters/sign-up?version=3.2#top

我的本​​地托管应用程序通过了所有测试,并且能够创建新用户并在用户/电子邮件/密码输入不正确或不符合规范时给出适当的错误消息。在应用程序的 Heroku 部署中,我既没有成功创建用户,也没有更正错误页面,因为该版本的密码摘要功能似乎有问题。我被带到一个通用的 Heroku“很抱歉,但出了点问题”页面。

“heroku logs”命令给我:

Started POST "/users" for 97.81.107.108 at 2012-04-10 19:41:17 +0000 2012-04-10T19:41:17+00:00 app[web.1]: Processing by UsersController#create as HTML 2012-04-10T19:41:17+00:00 app[web.1]: Parameters: {"utf8"=>"✓", "authenticity_token"=>"0jnDCpFnVq9fd/v1lgLNB7g0wHuXGi5bocTD3SINRzc=", "user"=>{"name"=>"helloq", "email"=>"this@this.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Create my account"} 2012-04-10T19:41:17+00:00 app[web.1]: 2012-04-10T19:41:17+00:00 app[web.1]: app/controllers/users_controller.rb:12:in创建' 2012-04-10T19:41:17+00:00 应用[web.1]: 2012-04-10T19:41:17+00:00 app[web.1]: NoMethodError (undefined method password_digest=' for #<User:0x0000000229e9e0>): 2012-04-10T19:41:17+00:00 app[web.1]: 2012-04-10T19:41:17+00:00 heroku[router]: POST simple-sword-1851.herokuapp.com/users dyno=web.1 queue=0 wait=0ms service=128ms status=500 bytes=643 2012-04-10T19:41:17+00:00 app[web.1]: Completed 500 Internal Server Error in 104ms 2012-04-10T19:41:17+00:00 app[web.1]: app/controllers/users_controller.rb:12:in new'

当 password_digest 方法在本地部署中正常运行时,为什么我会收到 NoMethodError?我已经用 git 检查过我的本地版本和远程 heroku 版本是一样的,我已经确保迁移数据库并重新启动应用程序。

感谢您的任何建议!

最佳答案

我也在学习教程,并且即将完成。我想跟进 Matthias 的评论。查看第 7 章,他还没有告诉您如何在 Heroku 上重置数据库。如果您想完全清除数据库并重新运行迁移,请执行以下操作:

heroku pg:reset SHARED_DATABASE --confirm simple-sword-1851
heroku run rake db:migrate

当我在迁移过程中搞砸了一些东西时,我偶尔会遇到一些问题。

关于ruby-on-rails - 密码摘要方法在 localhost 但不是 Heroku 上运行? (Hartl RubyOnRails 教程第 7 章),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10095969/

相关文章:

ruby-on-rails - 网页模板上嵌入代码的正确编码约定

ruby-on-rails - 管理同一台机器上不同分支的 Rails 迁移

database - 在 Heroku 上备份/加载后,PostgreSQL 数据库的大小变小了

ruby-on-rails - 使用 sprockets 2.0(可以使用 2.0.0.beta.15)和 Rails 3.1.0.rc5 为 Michael Hartl 的 Rails Tutorial Sample_app 项目获取未定义的方法

css - 安装 Foundation 后如何更改 rails 默认 css?

php - 如何将 Python 卖给客户/老板/个人

css - 背景图片 heroku rails 不工作

google-chrome - 在 Vultr、Digital Ocean、Heroku 或 GAE 上运行 google chrome puppeteer

ruby-on-rails-3 - 不推荐对 Rake DSL 方法进行全局访问

javascript - Hartl 教程 Ch. 8 通过javascript 的下拉菜单不会下拉,用户无法注销