ทำอย่างไรให้ Active Storage ใช้ UUID เป็น primary key
- active_storage
เมื่อรันคำสั่งติดตั้ง 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