1

まず、この質問があまりにも些細なことでしたら、本当に申し訳ありません。私はレールに不慣れで、どこが間違っているのかわかりませんでした。

Costing という名前のモデルがあり、そのインデックス ページに検索フォームがあります。「axlsx」gem を使用して検索結果のみをダウンロードしようとしていますが、常にすべての行を取得します。「will_paginate」ジェムも使用しています。

これが私のコードです。

 //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

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 に答える