0

私は持っている:

{xyz => [:abc, :klm, :nop]}

私は動的にこのようなものを持ちたいです (22、33、44 はいくつかのランダムな値です):

{:abc.gte => 22, :klm.gte => 33, :nop.gte => 44}

gtehttp://datamapper.org/docs/find.htmlで文書化されているように、Datamapper オペレーターです。

2番目のハッシュを構築する方法を知っている人はいますか?

4

1 に答える 1

1

ランダム値の最小/最大は?

それが 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}

ここでライブ デモを参照してください。

于 2012-11-08T00:24:05.157 に答える