私はそのようなコードを持っています
@pre_articles = Article.find(:all, :conditions => { :ART_ID => @linkla.map(&:LA_ART_ID)})
@articles = Kaminari.paginate_array(@pre_articles).page(params[:page]).per(15)
データの配列を選択していますが、それは巨大なので、ページ付けを追加することにしました。表示用に15のエントリを選択しますが、(ログ内の)すべてのページについても、SQLが最初の@pre_articlesのようにすべての配列を選択する方法を確認します。より高速にするために:たとえば0-15、15-30、30-45などのエントリをすべてのページで選択して表示するために送信する方法は?今ではすべてのデータを選択していますが、必要に応じて支払いを行っています
申し訳ありませんが、重要です!:
@linkla = LinkArt.where(:LA_ID => @la_typs.map(&:LAT_LA_ID), :LA_GA_ID => @genart.map(&:GA_ID))
@articles = Article.where(:ART_ID => @linkla.map(&:LA_ART_ID)).page(params[:page]).per(15)
だから私のクエリに見えます。ご覧のとおり、@ linklaの結果に応じて記事を選択し、linklaは以前と同じように多くの記事を選択しています...彼が私のページに対してのみ選択する方法