Создать пользователя devise из консоли Ruby - PullRequest
140 голосов
/ 30 ноября 2010

Есть идеи о том, как создать и сохранить новый объект User с помощью devise из консоли ruby?

Когда я пытался сохранить его, я всегда получал false.Я предполагаю, что что-то упустил, но не могу найти какую-либо связанную информацию.

Ответы [ 5 ]

185 голосов
/ 30 ноября 2010

Вы можете добавить 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 при создании.

74 голосов
/ 30 ноября 2010

Вы должны быть в состоянии сделать это, используя

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

если это возвращает false, вы можете позвонить

u.errors

чтобы увидеть, что пошло не так.

27 голосов
/ 09 июня 2013

Если в вашей модели есть опция: подтверждаемый, это означает, что пользователь объекта должен быть подтвержден первым.Вы можете сделать два способа сохранить пользователя.

a.сначала пропускается подтверждение:

newuser = User.new({email: 'superadmin1@testing.com', password: 'password', password_confirmation: 'password'})
newuser.skip_confirmation!
newuser.save

b.или используйте подтверждение!:

newuser = User.new({email: 'superadmin2@testing.com', password: 'password', password_confirmation: 'password'})
newuser.confirm!
newuser.save
6 голосов
/ 22 февраля 2015

Если вы хотите избегать отправки писем с подтверждением , лучший выбор:

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

    u.confirm
    u.save

Так что, если вы используете фальшивую электронную почту или у вас нет подключения к Интернету, это позволит избежать ошибок.

2 голосов
/ 28 августа 2016

Ни один из приведенных выше ответов не работал для меня.

Вот что я сделал:

User.create(email: "a@a.com", password: "asdasd", password_confirmation: "asdasd")

Имейте в виду, что пароль должен быть больше 6 символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...