おれせか

なんかそれっぽいのをうにうに。

  • ruby1.9.3, rails3.2.7
  • 日本語含むデータ。「"」や「,」も入るかも。
  • ExcelでもだいじょうぶなようにShift_JISで。
  • meta_searchで条件絞ったりしたものをそのまんま取得したい。

コントローラではこんなかんじ。

class UserController < ActiveRecord::Base
  # 〜略〜
  def index
    @search = User.search(params[:search])
    @users = @search.relation.latest
    # csv以外ならページング付
    @users = @users.page(params[:page]) unless request.format == Mime::CSV
    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @users }
      format.csv  { send_data User.csv(@users), type: 'text/csv; charset=shift_jis', filename: "hoge.csv" }
    end
  end
  # 〜略〜
end

モデル側はこげなかんじ。

class User
  # 〜略〜
  def self.csv(users)
    require 'csv'
    headers = %w(名前 住所 メモ)
    # force_quotesオプションで全fieldにクオート強制される
    csv_data = CSV.generate(headers: headers, write_headers: true, force_quotes: true) do |csv|
      enum = if users.is_a?(Array)
        # Arrayだったらそのまま
        users.each
      else
        # Relationとかだったらfind_in_batchesで分割して
        Enumerator.new do |yielder|
          users.find_in_batches do |records|
            records.each { |record| yielder.yield record }
          end
        end
      end
      enum.each do |user|
        csv << [
          user.name,
          user.address,
          user.note
        ]
      end
    end
    csv_data.encode(Encoding::SJIS) # sjisにへんかーん
  end
  # 〜略〜
end

.csvみたいなURLで呼び出したらcsvダウンロードに。

http://〜〜〜〜/users/index.csv
PAGETOP
PAGETOP
PAGETOP

Comments (19)

私はこの興味深い記事を見ることができ

[2013/04/12 (金) 15:27]

110 meter hurdles:Air Jordan MM shopping or mountaineering tourism into the wild, it can come in handy. Shopping, MM eat ice cream, and immediately ran to almost rival Liu Xiang, the hurdler crossed ** barrels, fruit stand with lightning speed repurchase sorbet; climbers even more magical role to protect MM grounds carrying MM left cross right cross over the bushes and small trees, not only to enjoy the scenery, and can feel the warmth!
100 meters:Air Jordan the sport can be used for the benefit of help MM open water, Dafan, snacks, etc., etc., MM want to abuse you and make decamp with MM straight stamp legs clenched fist, not also music almost?

[2013/05/01 (水) 03:38]

典に詳しく書かれています。江戸時代には、風邪を治すために「葛根湯(

[2013/05/06 (月) 10:31]

時代には、風邪を治すた

[2013/05/08 (水) 15:57]

日本語含むデータ。「”」や「,」も入るかも。

[2014/07/12 (土) 12:50]
[2014/12/28 (日) 02:08]
[2014/12/29 (月) 04:28]
[2014/12/29 (月) 04:38]

Nice Articles. My thanks for doing such a wonderful report. I will return here to find out more and recommend my neighbors about your website.

[2015/02/07 (土) 16:51]

rchase sorbet; climbers even more magical role to protect MM grounds carrying MM left cross right cross over the bushes and small trees,

[2015/08/13 (木) 16:09]

プロジェクトのdirを適当につくってGemfileを作成。あとgit initもしとこう。

[2015/09/16 (水) 12:55]

Nice Articles. My thanks for doing such a wonderful report. I will return here to find out more and recommend my neighbors about your website.

[2015/11/23 (月) 17:37]

シャネル激安は近いうちに全く新しいのを発表して制限してシリーズを設計します。

シリーズの中ですべて設計がすべてきつくてすぐの流行っている傾向を貼って、
シャネル激安http://www.cctoh.com/
また(まだ)異なる風格の組み合わせ自由を行うことができます。
シャネルバッグ
シャネル財布
シャネル腕時計
シャネルピアス
シャネル眼鏡
シャネル靴
今おしゃれな女性ネットのファッションに従って小さくいっしょにシャネルが新しく制限して袋、
シャネル激安シリーズを包みを見てみに来を編みましょう!

[2015/12/01 (火) 18:38]

画面中央にこのボックスが表示されるサンプルで、ポップアップされたウィンドウ内でスクロールができるようにしたいのですが、どうしたらよいものか、と困っております。

[2016/01/07 (木) 11:14]

アイブ氏は前に自分のものを読んで、あなたはあまりにも素晴らしい。

[2016/01/15 (金) 17:37]

動かしたよメモ。動かしたよメモ。

[2016/07/08 (金) 09:33]

ブランドスーパーコピーバッグ、財布、時計
エルメス 長財布 スーパーコピー http://www.okakaku.com/brand-25-copy-0.html

プラダ スーパーコピー,プラダ 財布 コピー,プラダ 新作 財布ブランド財布コピー,ブランド スーパーコピー 財布,プラダ スーパーコピー 財布,シャネル財布コピー,グッチ スーパーコピー 財布,エルメス スーパーコピー 財布,ルイヴィトン長財布コピー,スーパーコピー財布,エルメスコピー財布,各種のブランドはかばんをコピーします偽物ブランド,激安偽物,ブランド財布コピー,エルメス財布コピー,ブランドのコピーブランド財布,ルイ?ヴィトンブランド財布コピー,偽ブランドグッチ財布,D&G,コピー財布偽物,偽物時計コピー,時計,ボッテガベルト,,靴,その他のバッグコピー,ブランド財布激安,ブランド激安販売,
スーパーコピー エルメス ベルト iwc http://www.newkakaku.com/cd.htm

革新的で優雅な超歓迎店舗超特価!
『激安価格』本物保証!
【正規品】激安専門店.
エルメス新作超特価SALE!
市場!
【最安値開催中】全品無料!
セット組み合わせ!
100%新品!
割引【超特価】信用第一!
【大特価!】100%本物保証!
2017【品質保証書】全国送料無料!
限定SALE手ごろなお値段!
【限定特価】史上最も激安い!
専門店【新入荷】
激安通販,配送のアイテムは返品送料無料

[2017/03/14 (火) 23:28]
PAGETOP

Comment Form

PAGETOP

Trackbacks (6)

[...] ・[rails] csvつくって出力するのよメモ | おれせか [...]

ciri ciri wanita dalam masa subur

[rails] csvつくって出力するのよメモ | おれせか

[2014/08/29 (金) 11:06]

野球 ミズノ

[rails] csvつくって出力するのよメモ | おれせか

[2014/10/11 (土) 14:37]

野球 少年その他

[rails] csvつくって出力するのよメモ | おれせか

[2014/11/01 (土) 18:43]

カーav カーオーディオ

[rails] csvつくって出力するのよメモ | おれせか

[2014/11/21 (金) 16:14]

スタッドレスタイヤホイールセット 215 45r18

[rails] csvつくって出力するのよメモ | おれせか

PAGETOP

Trackback URL

PAGETOP

Search