我尝试从我的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
不存在。
关于最佳方法的想法?
答案 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!