1

首先,如果这个问题太琐碎,我真的很抱歉。我是rails新手,不知道我做错了什么。

我有一个名为 Costing 的模型,在它的索引页面中我有一个搜索表单。我正在尝试使用“axlsx”gem仅下载搜索结果,但我总是得到所有行。我也在使用'will_paginate' gem。

这是我的代码。

 //costings_controller.rb

def index
@costings = Costing.search(params[:search] , params[:page])

respond_to do |format|
  format.html # index.html.erb
  format.json { render json: @costings }
  format.xlsx {
        send_data @costings.to_xlsx.to_stream.read, :filename => 'costings.xlsx', :type => "application/vnd.openxmlformates-officedocument.spreadsheetml.sheet"
    }
end
end

// index.html.erb
<%= link_to 'Download Costings', url_for(:format=>"xlsx") %>

请在这里帮助我。提前非常感谢。

4

2 回答 2

1

是我为 axlsx gem 演示制作的代码。浏览它并在控制器中实现您的要求。是此演示的输出。

于 2013-06-06T14:52:55.003 回答
0
//costings_controller.rb

def download
@costings = Costing.search(params[:search] , params[:page])

respond_to do |format|
  format.html # index.html.erb
  format.json { render json: @costings }
  format.xlsx {
        send_data @costings.to_xlsx.to_stream.read, :filename => 'costings.xlsx', :type => "application/vnd.openxmlformates-officedocument.spreadsheetml.sheet"
    }
end
end

// index.html.erb
<%= form_for :costing, url: download_costing_index_path do %>
...
<% end %>

//routes
resources :costing do
    collection do
      post :download, :defaults => { :format => 'xlsx' }
    end
end
于 2013-12-02T02:53:09.750 回答