Bagaimana cara membuat formulir sederhana di Rails menggunakan `form_with`?

Oct 09, 2025Tinggalkan pesan

Dalam dunia pengembangan web yang dinamis, Ruby on Rails menonjol sebagai kerangka kerja yang kuat dan efisien untuk membangun aplikasi web. Salah satu aspek mendasar dari banyak aplikasi web adalah kemampuan untuk mengumpulkan masukan pengguna melalui formulir. Dalam postingan blog ini, saya akan memandu Anda melalui proses pembuatan formulir sederhana di Rails menggunakanbentuk_denganpembantu. Sebagai pemasok Rails, saya mendapat kehormatan untuk mengerjakan banyak proyek di mana formulir memainkan peran penting, dan saya bersemangat untuk berbagi wawasan saya dengan Anda.

Memahamibentuk_dengandi Rel

Sebelum kita mendalami pembuatan formulir, mari luangkan waktu sejenak untuk memahami apa itubentuk_denganadalah.bentuk_denganadalah metode pembantu di Rails yang menyederhanakan proses pembuatan formulir HTML. Ini memberikan cara yang fleksibel dan intuitif untuk menghasilkan formulir yang benar secara semantik dan mudah dipelihara. Baik Anda membuat formulir kontak sederhana atau formulir multi-langkah yang rumit,bentuk_dengansudahkah kamu meliputnya?

Menyiapkan Aplikasi Rails Baru

Jika Anda belum melakukannya, Anda perlu menyiapkan aplikasi Rails baru. Buka terminal Anda dan jalankan perintah berikut:

rel simple_form_app baru cd simple_form_app

Ini akan membuat aplikasi Rails baru bernamaaplikasi_bentuk_sederhanadan mengarahkan Anda ke direktori aplikasi.

Menghasilkan Pengontrol dan Tampilan

Selanjutnya, kita akan membuat pengontrol dan tampilan untuk menangani formulir kita. Jalankan perintah berikut di terminal Anda:

rails menghasilkan formulir pengontrol baru

Ini akan menghasilkan aPengontrol Formulirdengan abarutindakan dan file tampilan yang sesuai diapp/views/forms/new.html.erb.

Membuat Formulir Menggunakanbentuk_dengan

Sekarang, mari kita bukaapp/views/forms/new.html.erbfile dan buat formulir kami menggunakanbentuk_dengan. Berikut ini contoh formulir kontak sederhana:

<%= form_with(url: "/submit_form", metode: :post) lakukan |form| %> <div> <%= form.label :nama %> <%= form.text_field :nama %> </div> <div> <%= form.label :email %> <%= form.email_field :email %> </div> <div> <%= form.label :pesan %> <%= form.text_area :pesan %> </div> <div> <%= form.kirim "Kirim" %> </div> <% end %>

Dalam contoh ini, kami menggunakanbentuk_denganuntuk membuat formulir yang akan mengirimkan datanya ke/kirim_formulirURL menggunakanPOSmetode. Di dalam blok formulir, kami menggunakan berbagai metode pembantu formulir untuk membuat kolom masukan untuk nama pengguna, email, dan pesan, serta tombol kirim.

49E2 Steel RailBS 100A Rail

Menangani Pengiriman Formulir

Untuk menangani pengiriman formulir, kita perlu menambahkan rute dan tindakan ke filePengontrol Formulir. Bukaconfig/routes.rbfile dan tambahkan baris berikut:

posting '/submit_form', ke: 'forms#submit'

Ini akan memetakan/kirim_formulirURL kekirimtindakan diPengontrol Formulir. Sekarang, bukaaplikasi/controllers/forms_controller.rbfile dan tambahkan tindakan berikut:

def submit # Di sini Anda dapat memproses data formulir, misalnya menyimpannya ke database nama = params[:nama] email = params[:email] pesan = params[:message] # Untuk saat ini, kami hanya akan mencetak data ke konsol put "Name: #{name}" put "Email: #{email}" put "Message: #{message}" redirect_to root_path, notice: 'Formulir berhasil dikirimkan!' akhir

Dalam tindakan ini, kami mengambil data formulir dariparamhash dan mencetaknya ke konsol. Dalam aplikasi dunia nyata, Anda biasanya menyimpan data ke database atau mengirim email. Setelah memproses data formulir, kami mengarahkan pengguna ke jalur root dengan pesan sukses.

Menata Bentuk

Untuk membuat formulir kita terlihat lebih rapi, kita dapat menambahkan beberapa gaya CSS. Bukaaplikasi/aset/stylesheet/application.cssfile dan tambahkan gaya berikut:

formulir div { margin-bawah: 10px; } label formulir { tampilan: blok; margin-bawah: 5px; } formulir masukan[type="text"], formulir masukan[type="email"], formulir textarea { lebar: 100%; bantalan: 5 piksel; batas: 1px padat #ccc; radius batas: 3px; } masukan formulir[type="kirim"] { warna latar: #007BFF; warna: putih; bantalan: 10px 20px; perbatasan: tidak ada; radius batas: 3px; kursor: penunjuk; } masukan formulir[type="kirim"]:hover { warna latar: #0056b3; }

Gaya ini akan membuat bentuk kita terlihat bersih dan profesional.

Menambahkan Validasi ke Formulir

Untuk memastikan bahwa pengguna memasukkan data yang valid, kita dapat menambahkan validasi ke formulir kita. Di Rails, kita bisa menggunakan validasi ActiveRecord untuk memvalidasi data sebelum menyimpannya ke database. Namun, karena kita tidak menggunakan model dalam contoh ini, kita dapat menggunakan JavaScript untuk melakukan validasi dasar di sisi klien. Berikut ini contoh cara menambahkan validasi ke formulir kami menggunakan JavaScript:

document.addEventListener('DOMContentLoaded', function() { const form = document.querySelector('form'); form.addEventListener('submit', function(event) { const name = document.querySelector('input[name="name"]').value; const email = document.querySelector('input[name="email"]').value; const message = document.querySelector('textarea[name="message"]').value; if (nama === '' || email === '' || message === '') { alert('Harap isi semua kolom');

Kode JavaScript ini akan mencegah formulir dikirimkan jika salah satu bidang wajib kosong.

Kesimpulan

Membuat formulir sederhana di Rails menggunakanbentuk_denganadalah proses yang mudah. Dengan mengikuti langkah-langkah yang diuraikan dalam postingan blog ini, Anda bisa membuat formulir fungsional yang mengumpulkan input pengguna dan menangani pengiriman formulir. Sebagai pemasok Rails, saya telah melihat secara langsung kekuatan dan fleksibilitas Rails dalam membangun aplikasi web, dan saya harap panduan ini bermanfaat bagi Anda.

Jika Anda tertarik membeli rel berkualitas tinggi untuk proyek Anda, kami menawarkan berbagai pilihan, termasukRel Derek Standar Gost KP140,Rel Baja 49E2, DanRel BS 100A. Rel kami dirancang untuk memenuhi standar kualitas dan kinerja tertinggi, dan kami berkomitmen untuk menyediakan layanan pelanggan yang sangat baik. Jika Anda memiliki pertanyaan atau ingin mendiskusikan kebutuhan Anda, jangan ragu untuk menghubungi kami untuk konsultasi pengadaan.

Referensi

  • Panduan Rel: https://guides.rubyonrails.org/
  • Jaringan Pengembang Mozilla: https://developer.mozilla.org/