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


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

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

8 73

8 ответов:

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

# use mongoid
class User
  include Mongoid::Document
end


# then
user = User.where(email: 'joe@example.com').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)
# $ rails console production
u=User.where(:email => 'usermail@gmail.com').first
u.password='userpassword'
u.password_confirmation='userpassword'
u.save!

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

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

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

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

u = User.find_by_email('user@example.com')
u.update_attribute(:password, '123123')

почему-то (рельсы 2.3??)

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

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

user = User.find_by_email('user@example.com')

сделал это.

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="root2014@Robin"
=> "root2014@Robin"
irb(main):004:0> u.password_confirmation="root2014@Robin"
=> "root2014@Robin"
irb(main):005:0> u.save
=> true
irb(main):006:0> exit

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

Удачи!

User.find_by_email('joe@example.com').update_attributes(:password => 'password')

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

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