プログラム初心者な方向けに始めたRailsチュートリアルシリーズです。今回はRailsのWebアプリケーションでDBを扱う場合に便利なライブラリ『Active Record』の入門記事です。
例えば、拙著の『Nokogiri を使った Rubyスクレイピング』で取得したデータをWebサイトで表示する場合は、スクレイピングした時点でDBに入れておくのが一般的です。そうすることで、スクレイピングする処理と、表示にかかわる処理をシンプルにすることができます。
目次
(1) 前提として
(2) ActiveRecordとは?
(3) ActiveRecordについて最初に読んでおくと良い資料
(4) シンプルなActiveRecordの操作について
(5) 実際にコードを書いていくのに参考になりそうなサイト
(1) 前提として
この記事は、Railsのアプリをベースに話を進めていきます。そのため、もし『Rails x Herokuでアプリを作成』をまだ読んでおられない場合は、もし先に読んでからこの記事に戻ってきてもらえると泣いて喜んで歌って踊ります!
(2) ActiveRecordとは?
ActiveRecordとは、データベース(DB)の種類を意識することなく、プログラミングしやすい形でDBのテーブルとのデータのやりとりを行えるようにするためのライブラリです。
オープンソースのリレーショナル・データベースだけでもMySQL、PostgreSQL、sqlite、SQL Server, Sybase, Oracleなどなど様々な種類があります。各言語に合わせてプログラミングを書き直していると、膨大な手間がかかってしまう可能性があります。そういったことを最小限にしてくれるのがActiveRecordのような『[ORマッパー]』と呼ばれる仕組みです。
(3) ActiveRecordについて最初に読んでおくと良い資料
まずは、初学者の親友ドットインストールさんの『ActiveRecord入門 (全14回)』が最初に見ておくと捗ります。
また、TECHSCOREさんの『ActiveRecordシリーズ』も作成・読み込み・更新・削除(CRUD)の一連の流れを丁寧に解説してくれています!
(4) シンプルなActiveRecordの操作について
モデルの作成
ここからは実際にRailsでモデル(ActiveRecord)を作っていきながら、簡単なデータの追加と削除をやってみます。
まずは、ActiveRecordのモデルUserを作成するためにターミナルで次のコマンドを実行します。
1
| |
ちなみに、rails generate(g)はrailsのモデルや、ビュー、コントローラ、scaffold(土台)をつくることもできます。
このコマンドが完了すると次の2つのファイルができます。
db/migrate/xxxx_users.rb #=> UserモデルをDBのテーブルとして作成するためのファイル app/model/user.rb #=> Userモデル(ActiveRecord)を表す。モデルに関わる処理を書く
マイグレーションファイル
先ほど自動で作成されたマイグレーションファイルは次のようになっていると思います。
1 2 3 4 5 6 7 8 9 10 | |
このファイルを直接編集することも可能です。
まずこのファイル内では抽象化されたカラムを指定します。カラムの型としては次のようなものがあります。
1 2 3 4 5 6 7 8 9 10 11 | |
詳細は『テーブルの作成 マイグレーション(migration))』がおすすめです。
さらに、DBにテーブルを作成するために次のコマンドを実行します。もし、rake db:createを一度も実行していない場合は、先に実行してください。
1
| |
レコードのd 作成(Create)・読み込み(Read)・更新(Update)・削除(Delete)
ここからはできるだけ説明を簡単にするためにrails console内で確認をしていきます。次のコマンドを実行するとrailsのコンソールが起動します。
1
| |
コンソールが起動したら、次のコマンドを実行してみてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | |
これでデータベースからデータを作成(Create)・読み込み(Read)・更新(Update)・削除(Delete)することが出来ました。この一連の操作を頭文字をとってCRUDと呼びます。
Railsの処理への反映
これらの処理は実際にはモデルやコントローラなどに個別に記述していくことでWebアプリケーションを作成します。ここでは、CRUDの流れをわかりやすく丁寧に解説しているSpice Lifeの五十嵐さんが一橋大学での講義に使われたスライドを元にトライしてみてください。
Ruby on Rails講義 第20回: CRUD基礎
Ruby on Rails講義 第21回: New, Create
Ruby on Rails講義 第22回: Model
Ruby on Rails講義 第24回: new&create
Ruby on Rails講義 第25回: model
(5) 実際にコードを書いていくのに参考になりそうなサイト
超有名なRailsの日本語リファレンス・サイト。2014/02/16時点でのRailsの最新版(4.0.2)にも対応しており、毎日確実にお世話になっています!
日本のRubyistで知らない人はいないほど有名なるびまの記事『Rubyist Magazine - RubyOnRails を使ってみる 【第 3 回】 ActiveRecord』は、ActiveRecordの機能についてしっかりと説明をして頂けています。ActiveRecordを基礎からしっかり理解するために是非読んで欲しい記事!
お願い
個人的に初心者向けにRuby/Railsを教える機会が増えています。この記事に関連する分野で効率的に勉強するのにおすすめな資料をご存知なら、Twitterで@zyunnosukeにメッセージ or コメント頂けたら感激します!
逆にこの記事を使ってトライしたら、なんか上手く動かない的な話も同じく大歓迎です。いつでもメッセージ下さい!