I was wondering how I could select a random item from an array each time I create a record when seeding.
I know to select a random item, I can use
array_one = ["one", "two", "three"]
array_one.sample
one
Or if I want to select each value one time only (sample takes an argument)
array_one = ["one", "two", "three"]
array_one.sample(3)
["two", "one", "three"]
But how would I do it in the following circumstance
email_address_array = ['myaddress@email.com', 'myaddress1@email.com', 'myaddress2@email.com']
3.times {
user = User.create({
email: email_address_array.sample ## not sure how to set this up
})
}
Assuming your array has no duplicate values, you can do:
User.create(email: email_address_array.delete(email_address_array.sample))
This will return a random entry from the array while also deleting it from that array. This also assumes you don't need the array again later in your seeds file.