【今すぐ無料で試す】ゼロから始める定額・学び放題のプログラミング学習サービス「侍テラコヤ」

【Ruby on Rails】CSV出力する方法

Ruby on Railsを知っている人

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

 

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

 

\単月定額と比べて総額最大48,000円OFF!/
学び応援キャンペーン実施中!
【超安心】1か月間全額返金保証付き

最短30秒で登録完了! 今すぐ侍テラコヤに入学してRuby on Railsを学ぶ!

 

以下のプログラミングスクールもオススメです。

 

是非検討してみてはいかがでしょうか?

 

  1. 侍テラコヤ初月50%OFF学び応援キャンペーン実施中)(解説記事はこちら
    学び応援キャンペーンでお得に申し込む!
    ・コスパ最高! 月額2,980円〜利用できる!
    ・単月定額と比べて総額最大44,400円OFF!

    ・学び応援キャンペーン実施中!
  2. TechAcademy
    無料体験レッスンに申し込む!
    ・Ruby/Ruby on Railsだけでなく、Git/GitHub、HTML/CSS、Bootstrap、SQL、Heroku、Web API、Vue.jsなど幅広く学ぶことができる

    ・今まで得た知識をアウトプットするために自分の作りたいWebサービスを作る
    無料体験レッスン実施中!

 

Ruby on Railsを知っている人

 

CSVとは?

 

Ruby on Railsを知っている人

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

 

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

 

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

 

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

 

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

 

CSVの特徴は以下の通りです。

 

  • 拡張子は「.csv」
  • 汎用性がある

 

Ruby on Railsを知っている人

 




 

アプリケーション作成

 

Ruby on Railsを知っている人

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

 

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

 

 

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

 

 

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

 

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

 

 

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

 

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

 

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

 

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

 

 

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

 



 

CSV機能を実装する

 

Ruby on Railsを知っている人

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に出力する仕組みになっています。

 




 

CSVを取り出してみる

 

Ruby on Railsを知っている人

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

 

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

 

 

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

 

 




 

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

 

Ruby on Railsを知っている人

Ruby on Railsを学ぶのにオススメの参考書をみていきましょう。

 

Ruby on Rails 6 実践ガイド impress top gearシリーズ

 

本書では、1つの企業向け顧客管理システムを作る過程で、RailsによるWebアプリケーション開発の基礎知識とさまざまなノウハウを習得していきます。

 

各章末には演習問題が設けられているので、理解度を確かめながら確実に読み進められます。

Ruby on Railsを知っている人

 

 

Ruby on Rails 6 実践ガイド[機能拡張編]

 

本書は、2019年12月に出版された『Ruby on Rails 6実践ガイド』の続編です。

 

本編で作成した企業向け顧客管理システムBaukis2の機能をさらに拡張し、実用性の高いシステムにしていきます。

 

本書のテーマは多岐にわたります。

 

クッキー、リクエスト元のIPアドレス、Ajax、データベーストランザクション、排他的ロック、ツリー構造のデータなど、さまざまなWebアプリケーションに必須の機能を実装しながら解説します。

 

また、この機能拡張編では、HTMLフォームのさまざまなバリエーションを紹介しています。

 

特にRailsで業務システムを開発する場合、要求仕様に応じて自由にHTMLフォームを設計・実装する力が求められます。

 

本書では、さまざまなフォーム設計の事例を扱っていますので、一種のレシピ集として活用できます。

Ruby on Railsを知っている人

 

 

パーフェクト Ruby on Rails 【増補改訂版】

 

新しいRailsのバージョンでサポートされた機能の紹介だけでなく、Dockerでの導入方法など最新の実践的内容を追加し、現在のトレンドとなる開発スタイルを紹介します。

Ruby on Railsを知っている人

 

 

まとめ

 

Ruby on Railsを知っている人

最後まで読んで頂きまして、ありがとうございました。

 

途中で分からないことがあり、中々進まないこともあると思います。

 

しかし、順を追って学習を進めていけば、必ずできるようになるのであきらめず最後までやりぬきましょう!

コメントを残す

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