1

我遇到了一个问题:我正在尝试使用(mac os x mavericks)向我的第一个 Rails 应用程序添加身份验证:rails 4、mysql(通过 mysql2 gem)、ActiveRecord。我添加了关于 railstutorial 指南的注释:Gemfile:

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 控制台创建和保存新用户(因为我还没有创建视图和控制器):

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

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

(0.3ms)  BEGIN
(0.2ms)  ROLLBACK

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

4

1 回答 1

3

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

请参阅文档中的示例——在确认与密码匹配之前,用户不会在该示例中保存。

于 2014-01-13T15:02:16.017 回答