2014-08-28 53 views
0

我试图从我seeds.rb做到这一点:如何在设计3.2.x中手动更改/更新用户密码?

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" = '[email protected]' AND "users"."p... 

我试过encrypted_password,但后来我得到相同的users.encrypted_password_confirmation不存在。

有关最佳方式的想法?

回答

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中,你会得到你想要的结果(虽然我不得不承认我不确定环境变量是否工作,但你可能不得不重新调整它的那部分)。

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

我想设置我的'seeds.rb'文件来创建一个新的管理用户的应用程序的香草版本。 – marcamillion 2014-08-28 03:03:16

+0

你是对的,我在看到你的修改之前尝试了你的第一个块的变体。两者都可以工作。谢谢! – marcamillion 2014-08-28 03:57:49