我正在关注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
似乎只在加载记录时被调用,而不是在我试图获取我刚刚设置的值的时候。
在现实世界中,我不需要获得我刚刚设定的值,但这个问题没有意义。
答案 0 :(得分:2)
尝试使用typecast_to_primitive
(你有一个错字)。