在Rails控制台中:
user = HotelUser.create(:email=>'test@gmail.com')
(0.0ms) BEGIN
(0.0ms) ROLLBACK
=> #<HotelUser id: nil, userName: nil, email: "test@gmail.com", address1: nil, address2: nil, created_at: nil, updated_at: nil, password_digest: nil>`
我是rails的新手。我想在rails console中创建一个用户。但每次我都得到Rollback。为什么会发生这种情况。
答案 0 :(得分:1)
快速而肮脏的检查方法是使用create!
例如:
pry(main)> User.create(:fname => "Bob")
(0.1ms) begin transaction
(0.1ms) rollback transaction
=> #<User id: nil, email: nil, encrypted_password: nil, fname: "Bob", lname: nil>
pry(main)> User.create!(:fname => "Bob")
(0.1ms) begin transaction
(0.1ms) rollback transaction
ActiveRecord::RecordInvalid: Validation failed: Email can't be blank, Password can't be blank
爆炸(!)和非爆炸之间的区别在于创造!会引发例外。
答案 1 :(得分:0)
您可以在Rails控制台中通过这些代码检查错误,并查看用户模型进行修复
=> user = HotelUser.create(email: 'test@gmail.com')
=> user.errors
答案 2 :(得分:0)
试试这个: T = HotelUser.new 然后,键入: t.email =&#34; test@Gmail.com" 最后一个命令, t.save
希望这能解决您的问题。 .create的问题在于你没有通过其他参数如创建日期和更新日期等等。