OOZOU
ติดต่อเรา
กลับไปหน้า TIL
ruby on rails

เพิ่ม type ใหม่ให้กับ attributes API ของ Rails 5

13 ตุลาคม 2563

attributes API ของ Rails 5 ช่วยให้เราสร้าง form object ได้ง่ายมาก

ก่อนหน้านี้เราใช้ callback after_initialize เพื่อแปลงอีเมลเป็นตัวพิมพ์เล็ก แต่ด้วยโค้ดต่อไปนี้ เราสามารถกำหนด type :email ขึ้นมาเอง แล้วค่าจะถูก cast ให้อัตโนมัติทุกครั้งที่เซ็ตค่า

ข้อดีคือการเรียกเซ็ตค่าอีเมลครั้งถัด ๆ ไปก็จะถูก 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'

เพิ่มเติมเกี่ยวกับ ruby on rails

ruby on rails10 กุมภาพันธ์ 2565

ใช้ Pundit Policy จัดการ permitted parameters ทั้งค่า default และแยกราย action

ในการจัดการ permitted params คุณสามารถเพิ่ม permitted\attributes และ permitted\attributes\for\#{action} ใน policy ของคุณได้ เช่น

ruby on rails31 มกราคม 2565

ใช้ `requestSubmit` สำหรับการ submit form ร่วมกับ Turbo

Turbo คอยฟัง event submit ที่เกิดขึ้นบน form ดังนั้นให้ใช้ requestSubmit เสมอเมื่อจะ submit form ด้วย JS

ruby on rails19 มกราคม 2565

ให้ Rubocop และ ESLint ignore gem ที่ bundle ไว้ใน GitHub Actions

โปรเจกต์ Rails มักติดตั้ง gem ลงใน vendor directory ใน GitHub actions เพื่อให้ cache ไว้ใช้ในรอบถัด ๆ ไปได้

มีโปรเจกต์ในใจแล้วหรือยัง?

เล่าให้เราฟังเกี่ยวกับโปรเจกต์ใหม่ของคุณ

ติดต่อนัดพูดคุยhello@oozou.com
OOZOU Logo

กรุงเทพฯ · สิงคโปร์ · ฮ่องกง

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

บริการ

  • พัฒนาเว็บ
  • AI Agents & Generative AI
  • พัฒนาแอปมือถือ
  • วิศวกรรมและวิเคราะห์ข้อมูล
  • UI/UX และการออกแบบผลิตภัณฑ์
  • Digital Transformation

บริษัท

  • เกี่ยวกับเรา
  • ร่วมงานกับเรา
  • บทความ
  • Case Studies
  • Today I Learned
  • ติดต่อเรา

เพิ่มเติม

  • อุตสาหกรรม
  • เครือข่ายพาร์ทเนอร์
© 2026 OOZOU สงวนลิขสิทธิ์
นโยบายความเป็นส่วนตัวจรรยาบรรณในการทำงานนโยบาย ABAC