あるアプリの管理者側機能を作成しています。
登録ユーザー一覧画面でユーザー情報のcsv出力機能を実装している中で気になる点があったので質問させていただきます。
表題の通りrailsでcsv出力機能を作っているのですが、created_at
カラムなどの表示をフル表示から日付のみに変更したいと考えています。
上の画像で「2020-07-15 17:35:50 +0900」となっている部分を「2020-07-15」のみにしたいです。
下記のコードでcsv出力を実現しています。
【app/models/user.rb】
class User < ApplicationRecord ・ ・ def self.csv_attributes #出力するカラムを指定 ["name", "tel", "email", "post_code", "prefectures", "address_1", "address_2", "room_number", "created_at", "updated_at"] end def self.generate_csv csv_columns = ["名前", "電話番号", "メールアドレス", "郵便番号", "都道府県", "住所1", "住所2", "住所3", "登録日時", "最終更新日時"] CSV.generate(headers: true) do |csv| csv << csv_columns all.each do |user| csv << csv_attributes.map{ |attr| user.send(attr) } end end end ・ ・ end
【app/controllers/users_controller】
def index @users = User.all.order("created_at DESC").page(params[:page]) respond_to do |format| format.html format.csv { send_data @users.generate_csv, filename: "users-#{Time.zone.now.strftime("%Y%m%d%S")}.csv" } end end
app/views/users/index.html
内に出力ボタンを配置して、それをクリックするとcsvデータが出力される仕組みになっています。
user.rbのself.generate_csv
内でcsvファイルにレコードのデータを渡すときに何かしらの処理を行えばいいのかなと考えているのですが
具体的な案がわからない状態です。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/07 06:05