Saat menjalankan aplikasi, bagaimana Anda memilih pengguna dengan alamat email dan kemudian menyetel kata sandi secara manual di dalam rails console
untuk Rancangan?
Selain itu, ke mana saya akan membaca dokumentasi untuk membahas lebih detail terkait manipulasi akun saat menggunakan Devise?
ruby-on-rails
ruby
ruby-on-rails-3
devise
rails-console
ylluminate
sumber
sumber
Jawaban:
Ini kurang lebih seperti yang Anda gambarkan :-)
# 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
Perbarui dari 6 tahun kemudian :)
Rancangan modern memungkinkan sintaks yang lebih sederhana, tidak perlu menyetel bidang konfirmasi
user.password = new_password; user.save # or user.update_attributes(password: new_password)
sumber
User.store_in 'admin_users'
namun diterimaundefined method
. Saya tampaknya tidak dapat mengakses tabel karena saya hanya mendapatkan nihil setiap kali. Bagaimana dengan menanyakan seluruh tabel dan hanya mendapatkan semua entri di dalamnya pada awalnya untuk diuji untuk melihat apakah saya masuk ke tabel itu pada awalnya? (Bekerja di MySQL di sini, namun itu tidak masalah dengan ActiveRecord.)# $ rails console production u=User.where(:email => '[email protected]').first u.password='userpassword' u.password_confirmation='userpassword' u.save!
sumber
User.find_by_email('[email protected]').update_attributes(:password => 'password')
Jika Anda menjalankan yang berikut ini di konsol rel, itu harus melakukan trik:
User.find_by(email: 'user_email_address').reset_password!('new_password','new_password')
http://www.rubydoc.info/github/plataformatec/devise/Devise/Models/Recoverable
sumber
User.find_by(email: 'user_email_address').reset_password('new_password','new_password')
Anda cukup memperbarui bidang kata sandi, tidak perlu kata sandi konfirmasi, merancang akan menyimpannya dalam bentuk terenkripsi
u = User.find_by_email('[email protected]') u.update_attribute(:password, '123123')
sumber
Untuk beberapa alasan, (Rails 2.3 ??)
user = User.where(:email => email).first
tidak berhasil untuk saya, tapi
user = User.find_by_email('[email protected]')
melakukannya.
sumber
1. Login ke konsol ralis
2. Kemudian perbarui kata sandi administrator
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. Segarkan halaman login, gunakan kata sandi baru untuk login, selamat menikmati!
Semoga berhasil!
sumber
User.find_by_email('[email protected]').update_attributes(:password => 'password')
User.find_by_email('[email protected]').update_attributes(:password => 'password')
sumber
Jika akun Anda terkunci karena terlalu banyak upaya login, Anda mungkin juga perlu melakukan:
user.locked_at = '' user.failed_attempts = '0' user.save!
sumber