Рубиновый массив, эквивалент активного record.where (критериев)

Это может быть очень долгий отрезок времени, но если бы он существовал, жизнь была бы намного проще.

Вот сценарий в любом случае. У меня есть массив хешей с одним ключом, значение которого является другим хешем ........ Да, я знаю.

Вот лучшее объяснение:

@myArrayOfStuff[0]
@myArrayOfStuff[0]["single-key"]
@myArrayOfStuff[0]["single-key"]["object-identifier"]

Первый возвращает хеш. Второй вернет объект (в моем случае это страница, но в примере используются разные имена) Третий возвращает любую переменную, на которую я ссылаюсь как идентификатор объекта.

Достаточно просто.

Я бы хотел сделать другой массив, в котором значение идентификаторов объектов не равно нулю или больше x. Нечто подобное методу activerecord.where.

@x = @myArrayOfStuff.where(["single-key"]["object-identifier"]) > 3orwhatever

Очевидно, это не работает, поскольку синтаксис ужасен. Но есть ли другой способ сделать это? Другой путь, который можно попробовать, - это отсортировать массив по этой переменной. Что-то вроде

@x = @myArrayOfStuff.sort {|x,y| y <=> x } 

Однако я действительно не понимаю, что происходит с методом сортировки ruby. Может ли кто-нибудь помочь?

5
задан overtone 23 August 2011 в 13:39
поделиться