0

我刚刚编写了一个自定义 DM 类型来帮助我解决这个问题。继承自 String 和所有爵士乐。刚才我想要一个默认验证。所以,我作为用户不需要定义的东西,它只是隐含地存在。例如,对于布尔类型的属性,如果您传递的不是真假,它会使它的对象无效。我想要那样的东西。您知道这是否可行,以及在架构中最好的位置插入它吗?

4

1 回答 1

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

或根据要求进行其他验证

于 2012-12-28T21:00:48.357 回答