Вопрос

Следующие наборы результатов хорошо работают с Will_Paginate:

Members.all(:limit => 5).paginate(:page => params[:page])
Members.all(:conditions => ["member_no < 6"]).paginate(:page => params[:page])
Members.all.paginate(:page => params[:page])

Ниже приведено:

Members.all(:conditions => ["member_no IN (?)", [1, 2, 3, 4, 5]]).paginate(:page => params[:page])

Почему второй запрос не работает хорошо с пагинальным? Спасибо!

Это было полезно?

Решение

# Paginate - это метод экземпляра, полученный на массиве и ActiveRecord :: Base. Вы действительно должны делать это таким образом:

Member.paginate(:page => params[:page], :limit => 5)
Member.paginate(:conditions => ["member_no < ?", 6], :page => params[:page])
Member.paginate(:page => params[:page])
Member.paginate(:conditions => {:member_no => (1..5)}, :page => params[:page])

Когда вы звоните # все, то # Pagaginate, что вы делаете, просит все Члены (все 1 000 000 из них), затем отбрасывают 99,999% из них, потому что вы только хотите первые 10. Это очень расточительно, чтобы сказать наименее.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top