Rails 4:无法将记录保存到db

时间:2014-01-13 14:52:47

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

我遇到了一个问题:我正在尝试使用(mac os x mavericks)为我的第一个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 console创建并保存新用户(因为我还没有创建视图和控制器):

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

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

(0.3ms)  BEGIN
(0.2ms)  ROLLBACK

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

1 个答案:

答案 0 :(得分:3)

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

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