加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何防止Rails Console在db事务上立即执行回滚

发布时间:2020-12-17 02:31:26 所属栏目:百科 来源:网络整理
导读:我是rails的新手,我在控制台遇到了一些麻烦.我想将记录添加到Users表并测试一些功能.但是,每次执行User.create或类似功能时,它都会成功完成,然后立即回滚.如何防止立即回滚? 我不是沙箱模式. 以下是我在尝试创建用户时在控制台中获得的输出.它表示用户存在,
我是rails的新手,我在控制台遇到了一些麻烦.我想将记录添加到Users表并测试一些功能.但是,每次执行User.create或类似功能时,它都会成功完成,然后立即回滚.如何防止立即回滚?

我不是沙箱模式.

以下是我在尝试创建用户时在控制台中获得的输出.它表示用户存在,然后立即回滚事务.然后我运行User.all只是为了表明事务确实被回滚.

>>> User.create(first_name: "derek",last_name: "harrington",email: "derek@gmail.com")
 (0.1ms)  begin transaction
 User Exists (0.2ms)  SELECT 1 FROM "users" WHERE "users"."email" = 'derek@gmail.com' LIMIT 1
 (0.1ms)  rollback transaction
 => #<User id: nil,first_name: "derek",email: "derek@gmail.com",password_digest: nil,credit_card_id: nil,address_id: nil,created_at: nil,updated_at: nil> 
>>> User.all
 User Load (0.3ms)  SELECT "users".* FROM "users" 
 => []

如何使这些更改永久化并防止回滚?

编辑:

这是我的用户模型的内容

class User < ActiveRecord::Base
  attr_accessible :first_name,:last_name,:email,:password,:password_confirmation
  has_secure_password

  validates :first_name,presence: true,length: { maximum: 50 }
  validates :last_name,length: { maximum: 50 }
  VALID_EMAIL_REGEX = /A[w+-.]+@[a-zd-.]+.[a-z]+z/i
  validates :email,presence:   true,format:     { with: VALID_EMAIL_REGEX },uniqueness: true
  validates :password,confirmation: true,length: { minimum: 6,maximum: 50 }
  validates :password_confirmation,presence: true
end

解决方法

所以看起来你没有提供密码确认,这就是它没有保存的原因.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读