我刚写了一个自定义DM类型来帮助我解决这个问题。继承自String和所有爵士乐。刚才我想进行默认验证。因此,作为用户不需要定义的东西,它只是隐含的存在。例如,对于Boolean类型的属性,如果传递的值不是true或false,则会使其对象无效。我想有类似的东西。你知道这是否可能,以及最好插入它的架构在哪里?
答案 0 :(得分:0)
我认为您可以在dump
方法中添加它,例如
def dump(value)
if valid_type?(value)
value
else
raise "Invalid type specified"
end
end
def valid_type?(value)
#your validation code
end
其他方式是使用其中一个dm-validations
在你的情况下,它将是
#Skipping class Definition
property :something, Your_dm_type
validates_with_block :something do
if condition
true
else
[false, "Invalid property specified"]
end
或根据要求的其他验证