Ruby数组相当于active record.where(标准)

ove*_*one 5 ruby arrays sorting activerecord ruby-on-rails

这可能是一个非常长的延伸,但如果它存在,将使生活更容易.

无论如何都是这种情况.我有一个哈希数组,其中一个键值是另一个哈希........是的,我知道.

这是一个更好的解释:

@myArrayOfStuff[0]
@myArrayOfStuff[0]["single-key"]
@myArrayOfStuff[0]["single-key"]["object-identifier"]
Run Code Online (Sandbox Code Playgroud)

第一个返回哈希.第二个将返回一个对象(在我的情况下称为页面但示例使用不同的名称)第三个返回我引用的任何变量作为object-identifier.

很简单.

我想做的是选择另一个数组,其中object-identifier值不是nil或大于x.类似于activerecord.where方法的东西.

@x = @myArrayOfStuff.where(["single-key"]["object-identifier"]) > 3orwhatever
Run Code Online (Sandbox Code Playgroud)

显然这不起作用,因为语法是残酷的.但还有另一种方法吗?另一种尝试的路径可能是通过此变量对数组进行排序.就像是

@x = @myArrayOfStuff.sort {|x,y| y <=> x } 
Run Code Online (Sandbox Code Playgroud)

但是我真的不明白什么是ruby的排序方法.有人可以帮忙吗?

Gaz*_*ler 17

您可以使用select方法.

@x = @my_array_of_stuff.select {|v| v["single-key"]["object-identifier"] > 3}
Run Code Online (Sandbox Code Playgroud)