如何创建一个新的DataMapper类型?

时间:2011-09-08 23:27:32

标签: ruby datamapper

我正在关注DataMapper site的指南,这就是我所拥有的:

module DataMapper
    class Property
        class SymbolStore < String
            def dump(v)
                v.to_s
            end

            def load(v)
                v.to_sym
            end

            def typcast_to_primitive(v)
                v.to_s
            end
        end
    end
end

但是,我的行为很奇怪。当我尝试设置一个SymbolStore值时,它会以字符串形式返回。但是,如果我加载一条记录,它会正确返回,作为符号。从我的实验中,load似乎只在加载记录时被调用,而不是在我试图获取我刚刚设置的值的时候。

在现实世界中,我不需要获得我刚刚设定的值,但这个问题没有意义。

1 个答案:

答案 0 :(得分:2)

尝试使用typecast_to_primitive(你有一个错字)。