2010-02-22 184 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