【问题标题】:Validating a BinData::Record on initialization在初始化时验证 BinData::Record
【发布时间】:2012-06-01 11:50:11
【问题描述】:

有没有办法在初始化期间验证 BinData::Record 上设置的字段?每个参数的 check_value 似乎只有在从输入流中读取后才会被评估

class Foo < BinData::Record
   uint8 :bar,:check_value=>lambda{raise 'Here is an error'}
end

Foo.new(:bar=>5)  #Does not raise validation exception

我尝试添加一个“initialize_instance”,它在“to_binary_s”上进行读取,但它引发了一些其他错误,可能是因为对象没有完全实例化。

【问题讨论】:

    标签: ruby bindata


    【解决方案1】:

    写一个def initialize 方法。然后将验证放入其中。 初始化是在对象实例化时运行的,因此必须进行检查。

    【讨论】:

    • 抱歉,没那么简单。该库检查是否已编写初始化方法并执行其他操作
    • 你不能用bindata记录覆盖初始化,他们建议创建一个方法initialize_instance
    猜你喜欢
    • 2019-06-22
    • 1970-01-01
    • 2018-05-29
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多