Пытаясь создать хороший упорядоченный список, у меня есть метод, который, как я знаю, работает в классе участников
def countries_ive_drunk
had_drinks.map {|drink| drink.beer.country }
end
def countries_ive_drunk_count
countries_ive_drunk.count
end
Зная, что это работает выше. Я создал новый класс, который хотел бы получить список участников и упорядочить его по country_ive_drunk_count
class Drinkers
include Mongoid::Document
def self.top_ten_drinkers
Participant.order_by([[:countries_ive_drunk_count, :asc]]).limit(10)
end
end
но когда это передается в мой файл haml:
get '/' do
@topdrinkers = Drinkers.top_ten_drinkers
haml :index
end
Тогда он не упорядочен правильно. и приведенный ниже код приводит к именам с числом рядом с ними. Счетчик не asc или desc, а просто в случайном порядке (вероятно, порядок, в который пользователь был введен в mongodb
%ul
- @topdrinkers.all.each do |participant|
%li
= "#{participant.countries_ive_drunk_count} - #{participant.name}"
Я что-то упускаю из виду (будь любезен, я впервые использую рубин, монгодб, монгоид, хамл ... бросаюсь в глубокий конец!)