3

すべてのポリシーを Excel ファイルにエクスポートするアプリを実行しましたが、すべての情報がエクスポートされません

これがmysqlのクエリです

select * from policies where deleted = 0 AND (state = 0 OR state= 1) ORDER BY state ASC 
i got 11,408 total when i executed it on mysql

これが私のコントローラーです

  @search = Policy.find_by_sql("select * from policies where deleted = 0 AND (state = 0 OR state= 1) ORDER BY state ASC ")
  @policies = @search.paginate(:page => params[:page], :per_page => 10)
  @results = @search

  respond_to do |format|
     format.html
     format.xls { send_data render_to_string(:partial=>"report"), :filename => "Report.xls" }
  end

これが私の見解です

 <%= link_to "Export Excel",{:controller=>"policy",:action=>"report", :format=>"xls",:page => params[:page] }  %>

これが私の部分的なビューです

<% @results.each do |policy| %>
     <%= policy.num_policy %> 
<% end %>

実際には5078行しかエクスポートしていませんが、11,408行あるはずです

誰かがこれで私を助けることができますか?

私は本当に助けに感謝します

ここに私の最後のログがあります

 Rendered policy_management/policy/_report_by_ejecutive (42929.2ms)
 Sending data Report_2013-11-11.xls
 Completed in 43533ms (View: 0, DB: 0) | 200 OK [http://0.0.0.0/policy_management/policy/generate_print_ejecutive?format=xls]
4

4 に答える 4

4

バッチ クエリActiveRecord バッチ クエリを使用する必要があり ます

@search = Policy.find_by_sql("select * 削除されたポリシーから = 0 AND (状態 = 0 OR 状態 = 1) ORDER BY 状態 ASC ")

@search = Policy.where("deleted = 0 AND (state = 0 OR state = 1)").order("state ASC")

あなたの部分で

<% @results.find_each(:batch_size => 1000) do |policy| %>
 <%= policy.num_policy %> 
<% end %>
于 2013-11-09T22:10:59.393 に答える
1

最初にcsvレコードを返そうとしましたか? おそらく、これは Excel エクスポーターに関連していると思います。1 つの Excel シートに記録できる数に制限があるのか​​もしれません。

于 2013-11-13T15:19:50.060 に答える