我想通过控制台手动创建用户:
User.find_or_create_by(email: "user@mail.com", first_name: "Stan", last_name: "Smith", password: "password", password_confirmation: "password", confirmed_at: Time.now)
我在过去的项目中已多次这样做,但这次它没有用。它没有获取Devise密码模型属性,因此这是我得到的错误:
PG::UndefinedColumn: ERROR: column users.password does not exist
我有Rails 4.1.4和Devise 3.3.0。最新版本有什么变化吗?
感谢。
答案 0 :(得分:10)
而不是User.find_or_create_by
您应该使用User.create
。
Devise在创建时接受密码和密码确认,但实际表只有一个名为encrypted_password
的列。
"发现" User.find_or_create_by
的一部分正在寻找名为"密码"的列。哪个不存在。
答案 1 :(得分:6)
如果您想使用find_or_create_by
,它仍接受阻止:
User.find_or_create_by(email: "user@mail.com", first_name: "Stan", last_name: "Smith") do |user|
user.password = "password"
user.confirmed_at = Time.now
end