1
Я пытаюсь отобразить в своем столе самые популярные слова, упорядоченные по количеству показов. Затем добавьте каминари для разбивки по страницам.Rails 3.2 group count with Kaminari
в мой контроллер я попробовал:
@tag_answers = Tag.group(:content).page(params[:page]).order("count_all DESC").count
и на мой взгляд:
<table>
<thead>
<th>Tag</th>
<th>Count</th>
</thead>
<tbody>
<% @tag_answers.each do |tag_content, tag_count| %>
<tr>
<td> <%= tag_content %> </td>
<td> <%= tag_count %> </td>
</tr>
<% end %>
</tbody>
</table>
<%= paginate @tag_answers %>
, но я получаю следующее сообщение об ошибке
undefined method `current_page' for #<ActiveSupport::OrderedHash:0x000001031b8678>
Да, это сработало! благодаря! Для ответа, в представлении мне пришлось изменить каждый блок с помощью '<% @ tag_answers.each do | tag | %> 'или' <% @ tag_answers.each_with_index | тег, индекс | %> 'и отобразить счетчик' <% = tag.count%> '. Отлично! Также он безопасен SQL? –
Да, использование raw sql опасно, но тип результата должен быть ActiveRecord :: Relation вместо ActiveSupport :: OrderedHash для использования разбивки на страницы. Кстати, кажется, что трудно вводить код в этот необработанный sql. –