【问题标题】:Rails 4: can't save a record to dbRails 4:无法将记录保存到数据库
【发布时间】:2014-01-13 14:52:47
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    查看example in the documentation——在该示例中,用户在确认与密码匹配之前不会保存。

    【讨论】:

    • 哦,是的!当然我忘记了密码确认。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-21
    • 2014-08-03
    • 2020-07-19
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    相关资源
    最近更新 更多