2010-02-22 225 views
1

我有一個場景,我試圖做一個使用傳統db2數據庫上的Rails的概念證明來獲得收益,它是我們用於當前和未來開發的可行選項平臺。ActiveRecord是否允許自定義類型?

我們所有的表都有一個主鍵,它被定義爲char位數據,它是二進制的。有什麼方法可以定義映射器來將數據轉換爲字符串或從字符串轉換數據?

我是ruby/rails newb所以這可能是一個容易回答的問題,我只是一直無法找到它。

回答

1

覆蓋屬性的setter和getter。

# Assumption: 
# 1. UUID is a BINARY column in your DB2 table. 
# 2. UUID column should be handled as a string 
# 
class User < ActiveRecord::Base 

    def UUID 
    convert_to_str(attributes['UUID']) 
    end 

    def UUID=(str) 
    attributes['UUID'] = convert_to_bin(str) 
    end 

    def convert_to_str bin 
    # custom conversion 
    end 

    def convert_to_bin str 
    # custom conversion 
    end 
end 
+0

您的假設是正確的。我會給這個鏡頭。感謝您的反饋意見。 – jridley 2010-02-23 16:15:52

+0

不應該UUID =(str)返回未經修改的字符串而不是已轉換的字符串?意思是:插入只讀「str」的第二行。 – hurikhan77 2010-02-23 17:02:45