我有:
{xyz => [:abc, :klm, :nop]}
我想动态地拥有这样的东西(22、33、44 是一些随机值):
{:abc.gte => 22, :klm.gte => 33, :nop.gte => 44}
gte
是一个 Datamapper 运算符,如http://datamapper.org/docs/find.html中所述
有谁知道如何构建第二个哈希?
我有:
{xyz => [:abc, :klm, :nop]}
我想动态地拥有这样的东西(22、33、44 是一些随机值):
{:abc.gte => 22, :klm.gte => 33, :nop.gte => 44}
gte
是一个 Datamapper 运算符,如http://datamapper.org/docs/find.html中所述
有谁知道如何构建第二个哈希?
随机值的最小值/最大值是多少?
假设它是从 1 到 100 的范围。那么您只需这样做:
require 'data_mapper'
properties = [:abc, :klm, :nop]
rand_range = (1..100).to_a
hash = properties.inject({}) { |h, p| h.update p.gte => rand_range.sample }
p hash
你会得到一个哈希值,你可以将它提供给 datamapper 的过滤器:
{#<DataMapper::Query::Operator @target=:abc @operator=:gte>=>24, #<DataMapper::Query::Operator @target=:klm @operator=:gte>=>52, #<DataMapper::Query::Operator @target=:nop @operator=:gte>=>51}