mysql - 导轨 4 : can't save a record to db

标签 mysql authentication ruby-on-rails-4 bcrypt-ruby

我遇到了一个问题:我正在尝试使用 (mac os x mavericks) 向我的第一个 Rails 应用程序添加身份验证: 轨道 4, mysql(通过 mysql2 gem), 事件记录。 我添加了关于 railstutorial 指南的以下注释: gem 文件:

gem 'bcrypt-ruby', '~> 3.1.2'

用户模型:

class User < ActiveRecord::Base
    has_secure_password
    attr_accessible :lastname, :firstname, :email, :password
end

创建用户迁移:

class CreateUsers < ActiveRecord::Migration
def change
    create_table :users do |t|
        t.string :lastname
        t.string :firstname
        t.string :email
        t.string :password_digest
    end
end
end

然后我尝试使用 Rails 控制台创建和保存新用户(因为我还没有创建 View 和 Controller ):

user = User.create(lastname: "LastName", firstname: "Name", email: "mail.mail.com", password: "qwerty")
user.save

我的控制台上有一条错误消息:

(0.3ms)  BEGIN
(0.2ms)  ROLLBACK

希望有人能解释我的错误是什么以及如何获得可读的错误,为什么我的事务被回滚

最佳答案

检查控制台中的 user.errors,您会发现缺少必需的 password_confirmation 属性(使用 has_secure_password 创建新记录时必需)

参见 example in the documentation -- 在确认匹配密码之前,用户不会在该示例中保存。

关于mysql - 导轨 4 : can't save a record to db,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21094219/

相关文章:

c# - SQL 表中的搜索结果

javascript - 如何在 Keycloak 中预先填写注册字段? (keycloak中是否有一个叫做 "register_hint"的东西?)

ruby-on-rails - 将在有序列表上分页

ruby-on-rails - 更新时 Rails 4 嵌套属性多条记录

php - 从 sql 获取前 12 个月

带有自动增量的 MySQL 插入 - 是否需要插入忽略以避免并发问题?

php - Objective-c 使用脚本上传到数据库

c# - FormsAuthentication.FormsCookiePath

git - Windows 密码已更改,现在我无法访问 TFS GIT 存储库

javascript - 根据网络带宽自动选择合适的视频质量?