Active Storage Ruby on Rails: Mengelola dan Menyimpan File dengan Mudah

Active Storage Ruby on Rails: Mengelola dan Menyimpan File dengan Mudah

Dalam pengembangan aplikasi web dengan Ruby on Rails, seringkali kita perlu mengelola dan menyimpan file yang terkait dengan objek-objek dalam aplikasi. Hal ini mencakup segala hal, mulai dari mengunggah foto profil pengguna hingga menyimpan dokumen terkait pekerjaan. Untungnya, Ruby on Rails menyediakan fitur yang sangat berguna yang disebut Active Storage yang memungkinkan kita melakukan hal ini dengan mudah dan efisien. Dalam blog post ini, kami akan menjelajahi apa itu Active Storage, bagaimana cara menggunakannya, dan memberikan beberapa contoh penggunaannya.

Apa itu Active Storage?

Active Storage adalah fitur yang terdapat pada Ruby on Rails yang memungkinkan pengelolaan file dan penyimpanan objek-objek terkait di dalam aplikasi web dengan mudah. Active Storage telah diperkenalkan pada Rails 5.2 dan telah menjadi bagian integral dari kerangka kerja tersebut. Fitur ini dirancang untuk memudahkan interaksi dengan penyedia penyimpanan seperti Amazon S3 atau Google Cloud Storage. Active Storage juga menawarkan kemampuan thumbnailing, mengubah ukuran gambar secara otomatis, dan mengompresi file secara efisien.

Menggunakan Active Storage

Untuk menggunakan Active Storage dalam aplikasi Ruby on Rails, kita perlu melakukan beberapa langkah berikut ini:

  1. Menambahkan Active Storage ke Rails App Langkah pertama yang perlu dilakukan adalah menambahkan Active Storage ke Rails App kita. Hal ini dapat dilakukan dengan menggunakan perintah berikut di terminal:
rails active_storage:install
rails db:migrate
Perintah ini akan menjalankan migrasi yang diperlukan dan menambahkan tabel-tabel yang diperlukan untuk mengelola file dan objek terkait dalam database.
  1. Konfigurasi Penyimpanan Selanjutnya, kita perlu mengkonfigurasi penyimpanan yang akan digunakan oleh Active Storage. Konfigurasi ini dapat dilakukan di file config/storage.yml. Berikut adalah contoh konfigurasi jika kita ingin menggunakan Amazon S3 sebagai penyimpanan:
amazon:
  service: S3
  access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
  secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
  region: <%= ENV['AWS_REGION'] %>
  bucket: <%= ENV['AWS_BUCKET'] %>

Pastikan untuk menambahkan kredensial AWS yang sesuai ke dalam variabel lingkungan di .env atau menggunakan variabel lingkungan lainnya.

  1. Menambahkan Kolom File ke Model Setelah itu, kita perlu menambahkan kolom untuk file ke model yang akan menggunakan Active Storage. Misalnya, jika kita memiliki model User dan ingin menyimpan avatar pengguna, kita dapat menambahkan kolom tersebut dengan menggunakan migrasi berikut:
rails generate migration AddAvatarToUsers avatar:string

Perintah ini akan membuat file migrasi baru yang akan menambahkan kolom avatar ke tabel users kita.

  1. Menggunakan Active Storage di Model Setelah menambahkan kolom, kita perlu menghubungkannya dengan Active Storage di model tersebut. Dalam contoh User, kita bisa menghubungkannya dengan menambahkan kode berikut:
class User < ApplicationRecord
  has_one_attached :avatar
end

Dengan menggunakan has_one_attached, Active Storage akan menambahkan metode-metode yang memudahkan kita dalam mengelola file terkait dengan objek.

Contoh Penggunaan Active Storage

Mari kita lihat beberapa contoh penggunaan Active Storage di dalam aplikasi Ruby on Rails:

  1. Mengunggah Foto Profil Pengguna Misalkan kita memiliki fitur di aplikasi web kita yang memungkinkan pengguna mengunggah foto profil mereka. Dengan Active Storage, kita dapat dengan mudah mengunggah foto tersebut ke penyimpanan yang telah kita konfigurasi sebelumnya, seperti Amazon S3 atau Google Cloud Storage.
# Controller
def upload_avatar
  current_user.avatar.attach(params[:avatar])
  redirect_to profile_path, notice: 'Foto profil berhasil diunggah!'
end

# View
<%= form_with(url: upload_avatar_path, method: :patch, local: true) do |form| %>
  <%= form.file_field :avatar %>
  <%= form.submit 'Unggah Foto Profil' %>
<% end %>
  1. Menyimpan Dokumen Terkait Pekerjaan Misalkan kita memiliki aplikasi pengelolaan pekerjaan yang memungkinkan pengguna mengunggah dokumen terkait dengan pekerjaan yang mereka lakukan. Dengan Active Storage, kita bisa menyimpan dokumen-dokumen tersebut dan memungkinkan pengguna untuk mengaksesnya.
# Controller
def show_job_documents
  @job = Job.find(params[:id])
  @documents = @job.documents
end

# View
<% @documents.each do |document| %>
  <p><%= link_to document.filename, rails_blob_path(document, disposition: 'attachment') %></p>
<% end %>

Dalam contoh ini, kita menampilkan daftar dokumen terkait pekerjaan tertentu dan menyediakan tautan untuk mengunduhnya.

Kesimpulan

Active Storage adalah fitur yang sangat berguna dalam pengembangan aplikasi web dengan Ruby on Rails. Dengan Active Storage, kita dapat dengan mudah mengelola dan menyimpan file yang terkait dengan objek-objek dalam aplikasi kita. Dalam artikel ini, kita telah menjelajahi langkah-langkah untuk menggunakan Active Storage, mulai dari menambahkannya ke Rails App kita hingga menggunakannya dalam model dan contoh penggunaannya. Dengan menggunakan Active Storage, kita dapat dengan mudah mengintegrasikan fitur pengelolaan file yang kuat ke dalam aplikasi Rails kita.

Semoga artikel ini bermanfaat dan membantu kamu dalam mengimplementasikan Active Storage dalam pengembangan aplikasi webmu dengan Ruby on Rails!

okochunk
okochunk Author of Affiliates, a template available for WordPress, HTML, Ghost and Jekyll.
comments powered by Disqus