Во-первых, я думаю, что вы имеете в виду таблицу, когда говорите БД (база данных). Таблица - структура внутри базы данных, которая содержит данные для конкретной модели, например (вопросы, голоса и ответы. В вашем случае у вас есть три таблицы.
Во-вторых, вызов attr_accessible: answer_id не делает атрибут доступным для поиска по индексу. Этот атрибут доступен для поиска независимо от того, объявляете ли вы его доступным. Это не индекс, если вы не укажете его как индекс в базе данных. attr_accessible означает, что атрибут может быть установлен с помощью массового назначения, например, когда вы вызываете update_attributes.
Наконец, если вы хотите сгруппировать по answer_id и упорядочить по количеству голосов, вы можете сделать это с помощью следующего запроса:
Vote.select('count(id) as votes, answer_id').group('answer_id').order('votes DESC')
Если вы хотите упорядочить по какому-либо другому значению, кроме того, по которому вы группируете, вам придется добавить это и в свою группу. Это гарантирует, что вы не получите произвольные результаты для второго значения. Например:
Vote.group('answer_id').group('column_1').order('column_1 DESC')