2016-08-31 2 views
0

J'utilise AXLSX pour générer des fichiers xlsx à partir d'une table affichée sur un site Web lorsqu'un utilisateur effectue une recherche à l'aide de Ransack. Mon problème est que les résultats sont paginés sur le site Web mais je veux que la feuille de calcul affiche l'ensemble des résultats plutôt que 15 enregistrements comme c'est actuellement le cas.Supprimer la pagination du jeu de résultats axlsx

Contrôleur

def index 
    @search  = Campaign.search(params[:q]) 
    @campaigns = @search.result.page(params[:page]||1) 

    respond_to do |format| 
    format.html 
    format.xlsx{ render xlsx: 'Campaigns' } 
    end 
end 

Lien

= link_to '<i class="glyphicon glyphicon-cloud-download"></i>'.html_safe, admin_campaigns_path(format: :xlsx), title: "Download Campaign XLS", rel: 'tooltip' 

Campaigns.xlsx.axlsx

require 'axlsx' 
xlsx_package = Axlsx::Package.new 
wb = xlsx_package.workbook 
wb.add_worksheet(name: "Campaigns") do |sheet| 
    style1 = sheet.styles.add_style(:bg_color => "EF0920", :fg_color => "FFFFFF", :b => "true") 
    sheet.add_row ["Header", "Header", "Header", "Header","Header","Header","Header","Header","Header","Header","Header","Header"], :style => style1 
    @campaigns.each do |campaign| 
    sheet.add_row [campaign.data,campaign.data,campaign.data,campaign.data,campaign.data,ccampaign.data,campaign.data,campaign.data,campaign.data,campaign.data,campaign.data] 
    end 
end 

Je pensais soit en changeant l'appel à des campagnes à autre chose et enlever la pagination, mais Je ne sais pas comment faire cela.

Répondre

0

figured it out:

def index 
    @search  = Campaign.search(params[:q]) 
    @campaigns = @search.result 
    respond_to do |format| 
    format.html{@campaigns = @search.result.page(params[:page]||1)} 
    format.xlsx{ render xlsx: 'Campaigns' } 
    end 
end