为了定义一个包含整数的维度的字段,用于使用域模型库以下面的格式定义。如何在Ruby中使用域模型库定义二维数组?
class Sample
include DomainModel
field :numbers, :type => Integer, :collection => true
end
以类似的方式,我怎样才能使用域模型定义一个二维数组?
为了定义一个包含整数的维度的字段,用于使用域模型库以下面的格式定义。如何在Ruby中使用域模型库定义二维数组?
class Sample
include DomainModel
field :numbers, :type => Integer, :collection => true
end
以类似的方式,我怎样才能使用域模型定义一个二维数组?
好的我在domain_model
找到了你的问题的解决方案。
当您将DomainModel
模块添加到您的班级中时,它会添加一个名为validate
的班级方法。这种方法允许你指定在该实例的情况下自定义验证,以便验证一个数组包含在任何深度只有数字,这将是你的代码:
require 'domain_model'
class Sample
include DomainModel
field :numbers, :collection => true
validate :numbers do |n|
n.add("must contain only numbers") if self.numbers.flatten.any? {|value| !value.is_a?(Integer)}
end
end
验证它仅包含数字的2维Array then
require 'domain_model'
class Sample
include DomainModel
field :numbers, :collection => true
validate :numbers do |n|
n.add("must contain only numbers") if self.numbers.flatten(1).any? {|value| !value.is_a?(Integer)}
end
end
可以请你分享一个工作测试代码如何填充此字段? – user3351074
你的意思是像'Sample.new(数字:[[1,2,3],[4,5]])' – engineersmnky
此gem在自述文件中没有任何用法示例。你现有的代码是否工作? –
验证过程非常简单,因此在这方面不够灵活。集合的过程只是循环'values'并检查它们是('is_a?')类型。你可以破解这个功能,但它会是非常具体的案件,我不确定我们的确切意图。如果您为数字指定所需的有效输入,我可能会以** NOT RECOMMENDED **时尚方式提供帮助 – engineersmnky
@maxpleaner是我现有的代码正在工作。 – user3351074