Tworzenie użytkownika devise z konsoli Ruby

Jakiś pomysł jak stworzyć i zapisać nowy obiekt Użytkownika za pomocą devise z konsoli ruby?

Kiedy próbowałem go uratować, zawsze robię się fałszywy. Chyba czegoś mi brakuje, ale nie mogę znaleźć żadnych powiązanych informacji.

Author: Arslan Ali, 2010-11-30

5 answers

Możesz dodać false do metody save, aby pominąć walidacje, jeśli chcesz.

User.new({:email => "[email protected]", :roles => ["admin"], :password => "111111", :password_confirmation => "111111" }).save(false)

Inaczej bym to zrobił

User.create!({:email => "[email protected]", :roles => ["admin"], :password => "111111", :password_confirmation => "111111" })

Jeśli masz włączony moduł confirmable dla devise, upewnij się, że podczas tworzenia ustawiasz wartość confirmed_at na coś w rodzaju Time.now.

 182
Author: jspooner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-05 06:27:02

Powinieneś być w stanie to zrobić używając

u = User.new(:email => "[email protected]", :password => 'password', :password_confirmation => 'password')
u.save

Jeśli zwróci false, możesz wywołać

u.errors
Zobaczyć, co poszło nie tak.
 71
Author: Sam Ritchie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-30 18:09:12

Gdy w twoim modelu jest opcja :confirmable oznacza to, że użytkownik obiektu powinien najpierw potwierdzić. Możesz zrobić dwa sposoby, aby zapisać użytkownika.

A. pierwsze to potwierdzenie pominięcia:

newuser = User.new({email: '[email protected]', password: 'password', password_confirmation: 'password'})
newuser.skip_confirmation!
newuser.save
B. lub użyj confirm! :
newuser = User.new({email: '[email protected]', password: 'password', password_confirmation: 'password'})
newuser.confirm!
newuser.save
 25
Author: akbarbin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-24 02:32:36

Jeśli chcesz uniknąć wysyłania e-maili z potwierdzeniem , najlepszym wyborem jest:

    u = User.new({
      email: '[email protected]',
      password: '12feijaocomarroz',
      password_confirmation: '12feijaocomarroz'
    })

    u.confirm!
    u.save

Więc jeśli używasz fałszywego e-maila lub nie masz połączenia z Internetem, unikniesz błędów.

 6
Author: Flavio Wuensche,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-22 16:14:30

Żadna z powyższych odpowiedzi nie zadziałała.

Oto co zrobiłem:

User.create(email: "[email protected]", password: "asdasd", password_confirmation: "asdasd")

Należy pamiętać, że hasło musi być większe niż 6 znaków.

 1
Author: Ezequiel Ramiro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-28 15:28:39