Cuộc sống Nhật Bản
Yuto Blog

【 Ruby on Rails】Hướng dẫn sử dụng ActiveStorage để upload hình ảnh

Nội dung chính
【 Ruby on Rails】Hướng dẫn sử dụng ActiveStorage để upload hình ảnh

Cài đặt ActiveStorage


rails active_storage:install

rake db:migrate


Gemfile
gem "image_processing"


app/models/article.rb
has_one_attached :image


app/controllers/articles_controller.rb
def article_params
  params.require(:article).permit(:image)
end


app/views/articles/_form.html.slim
= f.label :image
= f.file_field :image, accept: "image/png, image/jpg, image/jpeg, image/gif"


app/views/articles/show.html.slim
- if @article.image.attached?
  = image_tag @article.image.variant(resize: "640x480^", crop:"640x480+0+0", gravity: :center).processed


Một vài method cơ bản


Kiểm tra tồn tại
article.image.attached?

Download link
rails_blob_path(article.image, disposition: "attachment")

Delete
article.image.purge


Thiết lập để dùng trên Production


Gemfile
gem "aws-sdk-s3", require: false


config/storage.yml
amazon:
  service: S3
  access_key_id: <%= ENV["AWS_ACCESS_KEY_ID"] %>
  secret_access_key: <%= ENV["AWS_SECRET_ACCESS_KEY"] %>
  region: ap-northeast-1
  bucket: <%= ENV["AWS_BUCKET"] %>


config/environments/production.rb
config.active_storage.service = :amazon


Updated at 2023-05-09
Nếu bài viết có ích thì các bạn hãy chia sẻ nhé
Rate this article: 5/5 (54 ratings)
You didn't rate yet
Le Minh Thien Toan

Tác giả:Yuto Yasunaga

Xin chào các bạn. Mình là kỹ sư IT đang làm việc ở Nhật Bản. Mình tạo blog này để chia sẻ về cuộc sống và những kinh nghiệm trong quá trình học tập và làm việc.
Hy vọng bài viết này sẽ có ích cho bạn.