I have a project that is on rails 5.1.2
and I am trying to implement Active Storage on it, following couple of tutorials online I am able to setup the Active Storage and I can see the data being saved inside the active_storage_blobs
and active_storage_attachments
table.
I also confirmed by running user.avatar.attached?
and in response I got true so things are working.
What I am having problem with is displaying an image in view, I have tried
<%= image_tag(url_for(user.avatar)) %>
NoMethodError: undefined method `active_storage_attachment_path'
What I have done to setup Active Storage
Ran the install command
rails active_storage:install
This gave error Don't know how to build task 'active_storage:install'
but the following command worked
rails activestorage:install
I have added gem 'activestorage'
inside gemfile
This is what I have inside my storage_services.yml
test:
service: Disk
root: <%= Rails.root.join("tmp/storage") %>
local:
service: Disk
root: <%= Rails.root.join("storage") %>
Inside my development.rb
I have added
config.active_storage.service = :local
Inside my User
model I have added has_one_attached :avatar
Inside the controller on update I added the attachment code
user.avatar.attach(params[:user][:avatar])
- I can see the image being added in database,
- I can see the image being saved in the storage directory on root
Yet I am not able to display it,
What am I missing here? What do I need to do to get the image to display in the view? Why am i getting this error
NoMethodError: undefined method `active_storage_attachment_path'