Active Storage là framework tích hợp sẵn để đính kèm file (ảnh, PDF...) và upload lên cloud (S3, GCS, Azure) hoặc disk local. Cần chạy rails active_storage:install một lần để tạo các bảng active_storage_blobs, active_storage_attachments.
Khai báo trên model và attach:
ruby
class User < ApplicationRecord
has_one_attached :avatar # 1 file
has_many_attached :documents # nhiều file
end
user.avatar.attach(params[:avatar]) # gắn file từ form upload
user.avatar.attached? # kiểm tra đã có chưa
url_for(user.avatar) # sinh URL để hiển thị/tảiĐiểm cốt lõi:
- File thực nằm ở storage service (khai báo trong config/storage.yml), DB chỉ giữ metadata (blob) và liên kết (attachment).
- Với ảnh, dùng variant để resize on-the-fly: user.avatar.variant(resize_to_limit: [100, 100]).
- Không cần gem ngoài (paperclip/carrierwave) cho nhu cầu cơ bản.