it-roy-ru.com

Разработайте сброс пароля с консоли Rails

Во время работы приложения как выбрать пользователя по адресу электронной почты, а затем вручную установить пароль в Rails console для Devise?

Кроме того, куда я мог бы обратиться, чтобы рассмотреть документацию, чтобы покрыть больше деталей в этом отношении к управлению счетами, используя Devise?

82
ylluminate

Это более или менее, как вы описали :-)

# use mongoid
class User
  include Mongoid::Document
end


# then
user = User.where(email: '[email protected]').first

if user
  user.password = new_password
  user.password_confirmation = new_password
  user.save
end

Обновление через 6 лет :)

Современный дизайн позволяет более простой синтаксис, нет необходимости устанавливать поле подтверждения

user.password = new_password; user.save
# or
user.update_attributes(password: new_password)
123
Sergio Tulentsev
# $ Rails console production
u=User.where(:email => '[email protected]').first
u.password='userpassword'
u.password_confirmation='userpassword'
u.save!
51
Eric Guo

Если вы запустите следующее в консоли Rails, это должно сработать:

User.find_by(email: 'user_email_address').reset_password!('new_password','new_password')

http://www.rubydoc.info/github/plataformatec/devise/Devise/Models/Recoverable

22
gstraehle

Вы можете просто обновить поле пароля, нет необходимости в подтверждении пароля, devise сохранит его в зашифрованном виде

u = User.find_by_email('[email protected]')
u.update_attribute(:password, '123123')
5
Kshitij

Почему-то (Rails 2.3 ??)

user = User.where(:email => email).first

не работал для меня, но

user = User.find_by_email('[email protected]')

сделал это.

3
valk

1. Войдите в консоль ralis.

$ Sudo bundle exec Rails console production

2. Затем обновите пароль администратора.

irb(main):001:0> user = User.where("username = 'root'")
irb(main):002:0> u = user.first
irb(main):003:0> u.password="[email protected]"
=> "[email protected]"
irb(main):004:0> u.password_confirmation="[email protected]"
=> "[email protected]"
irb(main):005:0> u.save
=> true
irb(main):006:0> exit

3. Обновите страницу входа, используйте новый пароль для входа, наслаждайтесь!

Удачи!

3
robinwen
User.find_by_email('[email protected]').update_attributes(:password => 'password')
1
copremesis

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

user.locked_at = ''
user.failed_attempts = '0'
user.save!
0
Enzio