The time I quickly needed lots of fake user profiles (for an article)

Stephan Eberle
3 min readDec 10, 2020
https://randomuser.me

When I was working on my last Medium story (here) I was first using our production database to show off some functions of a web application.

While the tool is used internally at New Work SE this would have worked for an internal blog or Slack post, however this is a totally different story for showing your workplace with actual people, where they sit, with whom to the public, without their consent or them even knowing.

So I needed to find a quick way to replace all profile images and names with fake data. Working with Rails I use factory_bot_rails (link) frequently to generate fake data, but I am missing a fitting avatar image when using this Ruby gem.

I started looking around and found Ramdomuser.me,which is a web app that profiles fake user profiles with logs of fake-data attributes and it even provides an API to pull multiple profiles at once.

The first thing I did was look at the actual response JSON from the service to orient myself:

Excited as I was, I really just needed to replace the avatar images and names with the ones from the fake profiles. After some further reading the API documentation I added some parameters to the query so the response got smaller.

The final result is this rake task:

Pulling fake user profiles and changing actual users to be anonymous

As you can see there is no magic and the code however naive works flawlessly with our 2.6k users. I added the progress_bar Ruby gem for nicer output (it will also calculate when the job is done).

One little aspect here is the fact that I do not need to download the profile images into local temp files to again upload them to the database.

The User model that is used has a paperclip attribute for the user image and with a little extra method one can use the URI module to download and assign the avatar image file to the User.image like so:

Using URI to download and assign a profile image from a URL

This is in no way very sophisticated or elegant, but it gets the job done and I didn’t plan on build this feature in the first place and definitely not while writing a blog post. Again Ruby On Rails and its ecosystem made something complex easy to use so that I didn’t lose focus too much and was able to just like that create some “fake user” screenshots.

Thank you for reading and thank you, Randomuser.me, for providing an easy-to-use API service!

--

--