OOZOU
Hubungi Kami
Kembali ke TIL
ruby on rails

Menambahkan Tipe Baru ke Attributes API Rails 5

13 Oktober 2020

Attributes API di Rails 5 memungkinkan kita membuat form object dengan sangat mudah.

Sebelumnya saya menggunakan callback after_initialize untuk mengubah email menjadi huruf kecil. Dengan kode berikut, saya dapat mendefinisikan tipe data :email dan nilainya otomatis di-cast saat di-set.

Keuntungannya, pemanggilan berikutnya untuk men-set nilai email juga ikut di-cast.

class EmailType < ActiveModel::Type::String
  def cast(value)
    return super unless value.is_a?(String)
    super(value.downcase)
  end
end

ActiveModel::Type.register(:email, EmailType)
class Foo
  include ActiveModel::Model
  include ActiveModel::Attributes

  attribute :email, :email
end
> Foo.new(email: 'EMAIL@MAIL.com').email
=> 'email@mail.com'

Lainnya tentang ruby on rails

ruby on rails10 Februari 2022

Menggunakan Pundit Policy untuk Mengelola Permitted Parameter, Default dan Per Action

Untuk mengelola permitted params, Anda dapat menambahkan permitted\attributes dan permitted\attributes\for\#{action} di policy Anda, misalnya:

ruby on rails31 Januari 2022

Menggunakan `requestSubmit` untuk Submit Form dengan Turbo

Turbo mendengarkan event submit pada form. Oleh karena itu, selalu gunakan requestSubmit untuk men-submit form menggunakan JS.

ruby on rails19 Januari 2022

Mengabaikan Bundled Gems untuk Rubocop dan ESLint di GitHub Actions

Proyek Rails sering menginstal gem ke direktori vendor di GitHub Actions agar gem tersebut dapat di-cache untuk eksekusi berikutnya.

Punya proyek yang ingin diwujudkan?

Kami ingin mendengar apa yang sedang Anda bangun.

Mulai Percakapanhello@oozou.com
OOZOU Logo

Bangkok · Singapura · Hong Kong

X
Facebook
Instagram
LinkedIn
OOZOU Co., Ltd.
548 One City Centre
Ploenchit Road
Bangkok 10330
Thailand
+66 2544 0000
hello@oozou.com

Layanan

  • Pengembangan Web
  • Agen AI & Generative AI
  • Pengembangan Aplikasi Mobile
  • Analitik Data & Data Engineering
  • Desain UI/UX & Produk
  • Transformasi Digital

Perusahaan

  • Tentang Kami
  • Karier
  • Blog
  • Studi Kasus
  • Demo Langsung
  • Today I Learned
  • Hubungi Kami

Lainnya

  • Industri
  • Jaringan Mitra
© 2026 OOZOU. Hak cipta dilindungi undang-undang.
Kebijakan PrivasiKode EtikKebijakan ABAC