如何在设备3.2.x中手动更改/更新用户密码?

时间:2014-08-28 01:55:25

标签: ruby-on-rails devise

我尝试从我的seeds.rb

执行此操作
user = User.find_or_create_by email: ENV['ADMIN_EMAIL'].dup, password: ENV['ADMIN_PASSWORD'].dup, password_confirmation: ENV['ADMIN_PASSWORD'].dup

我收到此错误消息:

PG::UndefinedColumn: ERROR:  column users.password does not exist
LINE 1: ...sers"  WHERE "users"."email" = 'abc@test.com' AND "users"."p...

我尝试了encrypted_password,但后来我users.encrypted_password_confirmation不存在。

关于最佳方法的想法?

1 个答案:

答案 0 :(得分:1)

我会进入Rails控制台(rails c

user = User.new(email: "myemail.com", password: "superSecret")
user.save

你也可以改变它

user = User.find_by_email("myemail.com")
user.password = "newSuperSecret"
user.save

编辑:

我只是将我的第一段代码放在seed.rb中,然后运行rake db:seed就没问题了。所以我认为问题的关键在于find_or_create_by调用中的密码属性。我想如果你把它放在你的seed.rb中你会得到你想要的结果(虽然我不得不承认我不确定环境变量是否正常工作,你可能需要重新调整它的那部分)。< / p>

user = User.find_or_create_by(email: ENV['ADMIN_EMAIL'].dup)
user.password = ENV['ADMIN_PASSWORD'].dup if user.encrypted_password.blank?
user.save!