2017-02-23 40 views
1

Я использую Kaminari для разбивки многих объектов школы, но я должен заказать их по рейтингу, но что-то пошло не так: разбиение на страницы в порядке, но порядок драгоценных камней по рейтингу для каждой страницы разбивки на страницы, и не для всех школ, присутствующих во всех странице, например:рубин на рельсах и разбиение на страницы Каминари

page 1 -> school 1 - rate 20, school 2 - rate 10, school 3 - rate 0 
page 2 -> school 4 - rate 12, school 5 - rate 6, school 7 - rate 0 
page 3 -> ... 

и я хочу:

page 1 -> school 1 - rate 200, school 2 - rate 120, school 3 - rate 100 
page 2 -> school 4 - rate 90, school 5 - rate 90, school 6 - rate 85 
... 

вот мой код:

def index 
    @schools = School.where(:subscription.exists => false).page(params[:page]).per(50) 
    @schoolss = @schools.sort_by(&:ratings_count).reverse 
end 

и вид

<tbody> 
    <% @sch.each do |school| %> 
     <tr> 
      <th> <%= link_to school.title, school.path_school_profile %> </th> 
      <th> <%= school.city %> </th> 
      <th> <%= school.ratings.count %> avis | <%= school.avg_ratings_score_round %>/5 </th> 
     </tr> 
    <% end %> 
    </tbody> 
</table> 
<%= paginate @schools %> 
<%= page_entries_info @schools %> 

ли кто-то может мне помочь?

ответ

2

Вы отсортировали @schools для новой переменной (@schoolss), почему бы не использовать ее ??

изменить ваш контроллер индекса к этому

def index 
    @schools = School.where(:subscription.exists => false).order_by(:ratings_count => 'desc').page(params[:page]).per(50) 
end 
+0

Вы правы! но когда я помещаю этот код здесь, это ошибка: undefined method 'total_pages 'для #

+0

мы все еще используем школы, удаляем переменную schoolss –

+0

благодарю вас за ваше время! на самом деле это работает, но сейчас он не заказывается по рейтингам –

Смежные вопросы