Railsアプリに登録されているユーザー情報をCSV出力する機能を実装中です。
当方MacBookProのローカル環境で動作確認時は問題なかったのですが、デプロイ後Windowsユーザーの者が操作すると出力データが文字化けされていました。
そのため文字化け回避用のコードを追加し、再度デプロイしたところ、今度はcsv出力ボタンを押下時に表題のエラーが発生しました。
ローカルではエンコード処理を追加した後も問題なくCSVをダウンロードできました・・サーバー上でのエラーです。
エンコード処理を追加したCSV出力処理のコードは下記の通りです。(下から7行目)
user.rbに記述しています。
def orders_counts orders.where(order_completed: true).count end def order_amounts amounts = 0 orders.where(order_completed: true).each do |order| amounts += order.amount end return amounts end def self.csv_attributes ["name", "tel", "email", "post_code", "prefectures", "address_1", "address_2", "room_number", "created_at_date", "updated_at_date", "orders_counts", "order_amounts"] end def self.generate_csv csv_columns = ["名前", "電話番号", "メールアドレス", "郵便番号", "都道府県", "住所1", "住所2", "住所3", "登録日時", "最終更新日時", "累計依頼回数", "累計金額"] CSV.generate(encoding: Encoding::SJIS, row_sep: "\r\n", force_quotes: true, headers: true) do |csv| csv << csv_columns all.each do |user| csv << csv_attributes.map{ |attr| user.send(attr) } end end end
エラー解消のためにお力をお貸しいただけると助かります。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/02 06:46