从Ruby控制台创建设计用户

时间:2010-11-30 18:06:21

标签: ruby-on-rails ruby devise

如何使用ruby控制台设计和保存新的User对象?

当我试图保存它时,我总是假的。我想我错过了一些东西,但我无法找到任何相关信息。

5 个答案:

答案 0 :(得分:185)

如果需要,可以向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

答案 1 :(得分:74)

您应该可以使用

执行此操作
u = User.new(:email => "user@name.com", :password => 'password', :password_confirmation => 'password')
u.save

如果返回false,则可以调用

u.errors

看看出了什么问题。

答案 2 :(得分:27)

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

一个。首先是跳过确认:

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

答案 3 :(得分:6)

如果您想避免发送确认电子邮件,最好的选择是:

    u = User.new({
      email: 'demo@greenant.com.br',
      password: '12feijaocomarroz',
      password_confirmation: '12feijaocomarroz'
    })

    u.confirm
    u.save

因此,如果您使用的是假电子邮件或没有互联网连接,那么就可以避免错误。

答案 4 :(得分:1)

上述答案都不适合我。

这就是我所做的:

malloc()

请记住,密码必须大于6个字符。