关于如何创建和保存一个新的用户设计从红宝石控制台对象的想法?
当我试图挽救它的时候,我总是错误的。我想我遗漏了一些东西,但是我找不到任何相关的信息。
您应该能够使用
u = User.new(:email => "user@name.com", :password => 'password', :password_confirmation => 'password') u.save
如果返回 false,则可以调用
u.errors
看看出了什么问题。
如果需要,可以向 save 方法添加 false 以跳过验证。
User.new({:email => "guy@gmail.com", :roles => ["admin"], :password => "111111", :password_confirmation => "111111" }).save(false)
否则我就这么做了
User.create!({:email => "guy@gmail.com", :roles => ["admin"], :password => "111111", :password_confirmation => "111111" })
如果您有 confirmable模块启用设计,请确保您正在设置的 confirmed_at值为类似 Time.now的东西,同时创建。
confirmable
confirmed_at
Time.now
当您的模型有: 可确认的选项,这意味着对象用户应该首先确认。可以通过两种方式保存用户。
首先是跳过确认:
newuser = User.new({email: 'superadmin1@testing.com', password: 'password', password_confirmation: 'password'}) newuser.skip_confirmation! newuser.save
或使用确认! :
newuser = User.new({email: 'superadmin2@testing.com', password: 'password', password_confirmation: 'password'}) newuser.confirm! newuser.save
如果你想要 避免发送确认电子邮件,最好的选择是:
u = User.new({ email: 'demo@greenant.com.br', password: '12feijaocomarroz', password_confirmation: '12feijaocomarroz' }) u.confirm u.save
所以如果你用的是假邮件或者没有网络连接,这样就可以避免错误。
以上的答案对我来说都不管用。
我就是这么做的:
User.create(email: "a@a.com", password: "asdasd", password_confirmation: "asdasd")
请记住,密码必须大于6个字符。