【问题标题】:NoMethodError in Devise::RegistrationsController#create设计中的 NoMethodError::RegistrationsController#create
【发布时间】:2012-03-01 06:02:32
【问题描述】:

我已将 Devise gem 添加到 ruby​​ on rails 应用程序版本 1.8.7。我使用设计进行身份验证,并且我创建了一个名为 user 的模型,它将连接另一个数据库,我在 create_connection 中提到/指定了数据库配置,每当我在本地主机上运行应用程序时,我都会收到此错误消息

"未定义的方法 `password_salt=' for #" 一旦我注册了一个新成员,我就会收到这个错误。

我是 Rails 的新手,

请帮帮我

【问题讨论】:

  • ruby v 1.8.7 我假设是你在上面说的,rails 版本 3 什么的?
  • @Alex Marchant:是的 ruby​​ 1.8.7 和 rails 3.2.0

标签: ruby-on-rails ruby ruby-on-rails-3 devise


【解决方案1】:

我之前遇到过这个错误,试试下面的

1.再次重新运行迁移

rake db:migrate VERSION=0  #to rollback migrations to the first one if needed<br />

万一您忘记了,请取消注释以下行

t.string :password_salt

然后迁移你的数据库

rake db:migrate

还要确保将 encryptable 添加到您的数据库模型中

devise :encryptable .....

2.更新您的设计 gem

捆绑更新或在您的 gem 文件中指定使用最新的 devise gem 2.x

【讨论】:

  • @JeevanDongre 很高兴为您提供帮助,您的宝石过时了吗?
  • 不,我不知道回滚的事情,虽然我删除了 password_salt 的评论。
【解决方案2】:

您需要将password_salt 列添加到您的用户表中。它似乎不见了。

【讨论】:

  • 我在 users 表中添加了 password_salt 列,但仍然遇到同样的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-07
  • 2023-03-21
  • 2017-02-25
  • 2012-09-24
  • 1970-01-01
  • 2014-10-17
  • 1970-01-01
相关资源
最近更新 更多