ทำอย่างไรให้ Active Storage ใช้ UUID เป็น primary key

เมื่อรันคำสั่งติดตั้ง Active Storage ผ่าน bin/rails active_storage:install จะมีการติดตั้ง lib และสร้าง migration file ขึ้นมา ซึ่งตารางที่ถูกสร้างขึ้นเพื่อเก็บข้อมูลนั้นจะใช้ primary key เป็น int ทั้งนี้ทั้งนั้นถ้าต้องการเปลี่ยนไปใช้ UUID จะต้องกำหนดค่าให้กับ active record ให้ใช้ primary_key_type เป็น :uuid ใน generators ดังแสดงในโค้ดด้านล่าง

# application.rb
config.generators do |g|
  g.orm :active_record, primary_key_type: :uuid
end

แต่อย่าลืมว่าจะต้องรัน bin/rails db:migrate หลังกำหนดค่านะครับ

เอ๊ะ แล้วเรารู้ได้อย่างไรว่ามันต้องกำหนดค่าให้กับ active record ใน generators นั้นให้เราเข้าไปดูใน migration file ที่ถูกสร้างขึ้นตรง primary_and_foreign_key_types

def primary_and_foreign_key_types
  config = Rails.configuration.generators
  setting = config.options[config.orm][:primary_key_type]
  primary_key_type = setting || :primary_key
  foreign_key_type = setting || :bigint
  [primary_key_type, foreign_key_type]
end