Create an account record programmatically¶ ↑
In some scenarios you might want to create an account records programmatically, for example in your tests.
If you’re storing passwords in a separate table, you can create an account records as follows:
account_id = DB[:accounts].insert( email: "name@example.com", status_id: 2, # verified ) DB[:account_password_hashes].insert( id: account_id, password_hash: BCrypt::Password.create("secret").to_s, )
If the password is stored in a column in the accounts table:
account_id = DB[:accounts].insert( email: "name@example.com", password_hash: BCrypt::Password.create("secret").to_s, status_id: 2, # verified )
If you are creating accounts in your tests, you probably want to use the :cost
option, otherwise you will have very slow tests:
account_id = DB[:accounts].insert( email: "name@example.com", status_id: 2, # verified ) DB[:account_password_hashes].insert( id: account_id, password_hash: BCrypt::Password.create("secret", cost: BCrypt::Engine::MIN_COST).to_s, )