Я новичок в рельсах, и у меня проблемы с консолью. Я хотел бы добавить записи в свою таблицу Users и протестировать некоторые функции. Однако каждый раз, когда я выполняю User.create
или аналогичную функцию, она успешно завершается, а затем немедленно откатывается. Как предотвратить немедленный откат?
Я не в режиме песочницы.
Ниже приведен вывод, который я получаю в консоли при попытке создать пользователя. Он говорит, что пользователь существует, а затем немедленно откатывает транзакцию. Затем я запускаю User.all
, чтобы показать, что транзакция действительно откатилась.
>>> User.create(first_name: "derek", last_name: "harrington", email: "[email protected]")
(0.1ms) begin transaction
User Exists (0.2ms) SELECT 1 FROM "users" WHERE "users"."email" = '[email protected]' LIMIT 1
(0.1ms) rollback transaction
=> #<User id: nil, first_name: "derek", last_name: "harrington", email: "[email protected]", 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
User
. Вы также должны присвоить результатUser.create
переменной, чтобы вы могли проверить ошибки в ней. - person James   schedule 26.03.2012User
, суть в том, чтобы проверить на нем ошибки. Если он у вас есть в переменнойuser
, то проверьте, что вы получаете отuser.errors
. - person James   schedule 26.03.2012password_confirmation
как требуется, и я не включил его, когда пытался создатьUser
.user.errors
показал, что проблема была в этом. Большое спасибо за Вашу помощь. - person Derek Harrington   schedule 26.03.2012