DataMapper:在自定义类型上设置默认验证

时间:2012-09-03 14:44:05

标签: datamapper ruby-datamapper

我刚写了一个自定义DM类型来帮助我解决这个问题。继承自String和所有爵士乐。刚才我想进行默认验证。因此,作为用户不需要定义的东西,它只是隐含的存在。例如,对于Boolean类型的属性,如果传递的值不是true或false,则会使其对象无效。我想有类似的东西。你知道这是否可能,以及最好插入它的架构在哪里?

1 个答案:

答案 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

或根据要求的其他验证