2012-10-31 57 views
0

我使用Rails/ActiveRecord postgres_ext能夠存儲UUID作爲PostreSQL UUID數據類型。但在我的應用程序中,我比較了uuids,並希望從模型返回的UUID使用大寫而不是小寫。修補ActiveRecord/postgres_ext返回大寫UUID

如何修補ActiveRecord/postgres_ext以始終返回UUID的大寫字符串表示形式?

回答

1

我有一個問題,爲什麼你想這樣做,但是......

修補的ActiveRecord可能不會做到這一點的最好辦法。如果您希望模型將UUID的大寫版本返回給應用程序的其餘部分,則可以在模型代碼本身中執行此操作。這樣,您就可以從應用程序的其餘部分抽取數據庫層的細節。

您可以通過覆蓋訪問者代碼來完成此操作。可能看起來像:

def uuid 
    read_attribute(:uuid).upcase 
end 
+0

原因是客戶端發送的字符串格式的uuids列表,我想檢查是否在發送列表中的某個UUID。如果所有的UUID都是大寫的,我可以使用包含?在列表中,這樣可以更容易地比較數據庫中的UUID和客戶端提供的UUID。 – thejaz

+1

作爲postgres_ext gem的維護者,這是做到這一點的方法。 postgres_ext不會更改UUID列的任何類型轉換,因此它只是返回一個字符串 –