Ask A Question


You’re not receiving notifications from this thread.

User Avatars with ActiveStorage Discussion

Hi Chris, great episode. I posted a question about ActiveStorage but I have not received any response yet. Basically what i want to do is upload images for a has_many_attached directly from a controller. Let's say that given a folder route, upload all images in that folder, i know how to get the images and all, but i don't now how to attacht all those images?

Thanks in advanced.


I understand how you can create a variant to resize the original uploaded image, but how about other formatting, more specifically making the avatar a circle not a square. I realize that you can use CSS to achieve this, but such CSS doesn't always work. For example Outlook doesn't recognizes rounded corners CSS.

I built an app that generates email signatures and thus I want the image itself to have a circular formatting by applying a mask or something similar. How would I apply such a transformation to the image with active storage? What are the parameters for the variant?


Hi Chris, is there any episode (or can you plan one!) that demonstrates how to have a javascript editor so the user can 'center' the crop of the avatar? In real world cases, the users will never upload a 'perfect' avatar to be used with a circle, it will generally be off-center, so solutions like CSS object-fit: cover; don't end up with a perfectly centered image.


Hi TL,

Did you ever find a solution for this? I am trying to figure out how to do the same thing.

Reply seems like a good javascript plugin to do exactly what you need


Would be interesting to see if it's possible to extend that to add remote URL for avatars — would replace things like Carrierwave pretty much entirely. Another nice to have for a future tutorial: previewing the avatar before saving.


i am having a problem , i want to work with active storage using uuids,
i changed the migration file but i am getting PG::UndefinedFunction: ERROR: function gen_random_uuid() does not exist can someone help .
i tried to add :

enable_extension "uuid-ossp"
enable_extension 'pgcrypto'
in the migration file but did not work


I got a problem with line
<%= image_tag gravatar_image_url(, size: 100), height: 100, width: 100, class: "rounded-circle" %>

Error message:
Showing app/views/devise/registrations/edit.html.erb where line #17 raised:
undefined method `escape' for URI:Module

With Ruby3.0, URI.escape was removed


Did you ever resolve this? I just hit the same problem.


Yes, I resolved it. When I trial this, I used Rails 7 alpha2. I need to

  • Install some libvips & make config for it to work --> I think we don't need this if you use Rails 7.0. Because I hear that lipvips are used by default in this latest Rails release
    gem 'image_processing', '~> 1.2'
    # config :vips lib for image processing
    config.active_storage.variant_processor = :vips

  • Remove gravatar_image_tag from Gemfile and use this helper
    def display_avatar_url(size: :middle)
    height = AVATAR_SIZE[size] || size
    if avatar.attached?
    avatar.variant(resize_to_fill: [height, nil])


use instazoomhd to enlarge instagram profile picture


I think use is better, cause it can zoom and download any photos on Instagram.


Hello, I am new in this, studying about Active Storage I want something like I can create recipe and in recipe model I have one image to store I understood in this video about Active Storage but don't know how can I pass image and API data both with postman. Please anyone can help?

Join the discussion
Create an account Log in

Want to stay up-to-date with Ruby on Rails?

Join 83,453+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.