RailsでCSV出力する方法を解説!

CSV出力機能を実装することになりましたので、備忘録も兼ねて記事を書いてみました。

CSV出力機能を実装してみたい」、「CSV出力機能とはどのようなものか知りたい」という方は是非、ご覧になって下さい。

1.CSVとは?

普段データをやりとりする際に「CSV」がよく使用されます。

CSV出力する方法をお話していく前に「CSV」とは何かまず始めに見ていきましょう。

CSVとは?

CSV」とは「Comma Separated Value」という頭文字をとって名付けられたものです。

名前を見て分かるようにCSVファイルは「,(カンマ)」で区切られたものとなっています。

CSVは互換性が高く、様々なソフトに取り込んだり、編集したりすることが可能となっています。

CSVの特徴
  • 拡張子は「.csv」
  • 汎用性がある




2.アプリケーション作成

CSVとはどのようなものかが分かりましたので、実際にCSV機能を実装していきましょう。

まず始めに「csv」というアプリケーションを作成していきます。

次に「csv」のディレクトリに移動し、データベースを作成します。

今回は簡易的にscafflodを使用してPostモデルを作成します。

Postモデルnameというカラム(string型)postというカラム(text型)を持つとします。

scaffoldコマンドを実行するとたくさんのファイルが自動生成されました。

これで雛型は完成しましたが、最後にデータベースのテーブルを作成していきましょう。

テーブルを作成するにはマイグレーションファイルを使用します。

次のコマンドを実行するとテーブルを作成することができます。

これでテーブルを作成することができました。




3.CSV機能を実装する

1.CSV出力ボタンを設置する

CSV出力ボタンはどこに設置しても大丈夫ですが、今回は「index.html.erb」に設置します。

2.Controllerにフォーマット毎の出力内容を指定する

次にindexアクション内にフォーマット毎の出力内容を指定します。

respond_toでリクエストによって出力フォーマットを分けています。

CSV形式でリクエストがあった場合、send_dataメソッドを使用してレスポンスを行い、ブラウザからCSVファイルとして取り出すことができる仕組みになっています。

3.Modelにメソッドを定義する

Postモデルには以下のようにメソッドを定義しています。

csv_attributesメソッドではどのカラムをどのような順序で出力するかを定義しています。

また、generate_csvメソッドではカラム名に対応するPostモデルのレコードをすべて取得し、CSVに出力する仕組みになっています。




4.CSVを取り出してみる

それでは実際にCSVが取り出せるか確認してみましょう。

「/posts」にアクセスすると以下のような画面がでてきます。

「CSV出力」のリンクをクリックすると以下のようにCSVファイルを無事取り出すことができました。




5.Ruby on Railsを学ぶことができるオススメの教材

Ruby on Railsを学習している皆様にオススメの教材をご紹介させていただきます。

現場で使える Ruby on Rails 5速習実践ガイド

以下の本はRuby on Railsの学習を一通り終えてある程度知識を身につけた方にオススメしたい本です。

 

現場で使える Ruby on Rails 5速習実践ガイド」は現場で実際にどのように使われているのかという視点も交えて解説されています。

そのため、初心者の方が次のステップに進むために最適な本となっていますので、オススメです。

これらの本で是非学習を進めてみてはいかがでしょうか?

レベル別におすすめの本も紹介していますので、どのような本がオススメか知りたい方はこちらもご覧になって下さい。

[2020年最新版] Ruby on Rails を学ぶことができるおすすめの本

Udemy

UdemyではRuby on Railsを学ぶことができる講座を多数取り扱っています。

以下の記事でRuby on Railsを学ぶことができるオススメの講座をまとめていますので、よかったらご覧になって下さい。

[必見!] Udemy(ユーデミー) おすすめのRuby on Rails講座

プログラミングスクール

TechAcademyWebCampCodeCampなどでRuby on Railsを学ぶことができます。

それぞれ無料体験も行っているので、どのようなものか試してみるのもいいでしょう。

以下の記事で各プログラミングスクールをまとめているのでこちらもよかったらご覧になってください。

プログラミングスクール TechAcademy(テックアカデミー)とは? 特徴・口コミをまとめてみました! プログラミングスクール DMM WebCamp ビジネス教養コースとは? 特徴・口コミをまとめてみました! プログラミングスクール CodeCamp(コードキャンプ)とは? 特徴・料金・口コミをまとめてみました!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です