我是 Rails 新手,在控制台中遇到了一些问题。我想将记录添加到我的用户表并测试一些功能。但是,每次我执行一个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", last_name: "harrington", 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"
=> []
如何使这些更改永久化并防止回滚?
编辑:
这是我的User
模型的内容
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, presence: true, length: { maximum: 50 }
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[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