从 Ruby 控制台创建设计用户

关于如何创建和保存一个新的用户设计从红宝石控制台对象的想法?

当我试图挽救它的时候,我总是错误的。我想我遗漏了一些东西,但是我找不到任何相关的信息。

93887 次浏览

您应该能够使用

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的东西,同时创建。

当您的模型有: 可确认的选项,这意味着对象用户应该首先确认。可以通过两种方式保存用户。

首先是跳过确认:

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个字符。