Ruby on Rails入門

データベースの取り扱い
基本的な作業手順
(本の管理アプリケーション)









データベース(MySQL)の準備
rails books
config/database.yml の編集
MySQLでデータベース作成
ruby script/generate model book title:string author:string
publisher:string isbn:string published_on:date
rake db:migrate
ruby script/generate scaffold Book
サーバの立ち上げ
アプリケーションの修正
データベースの取り扱い
2
database.yml
development:
adapter: mysql
database: books_development
username: root
password: tomoharu
socket: /var/lib/mysql/mysql.sock
encoding: utf8
test:
database: books_test
……
production:
database: books_test
データベースの取り扱い
……
3
エンタープライズアプリケーションアー
キテクチャパターン








マーチン・ファウラー著
翔泳社
ISBN: 4-7981-0553-8
エンタープライズ・アプリケーションの設計
技法について。オブジェクト指向設計全般
で参考になる
原書名: 「Patterns of Enterprise
Application Architecture」
翻訳の質は微妙
「PofEAA」とか「PoEAA」と呼ばれる
http://capsctrl.que.jp/kdmsnr/wiki/PofEAA
/
データベースの取り扱い
4
データソースのアーキテクチャパ
ターン
Table Data Gateway
 Row Data Gateway
 Active Record
 Data Mapper

データベースの取り扱い
5
Active Record パターン

データと振る舞いの両方を持つオブジェク
ト。Personクラス自身にデータベースにア
クセスする処理が記述されている。
データベースの取り扱い
6
データベースに対するCRUD

Create
– テーブルへの情報の追加
– insert into 文

Read
– テーブルからの情報の読み出し
– select文

Update
– テーブルの情報の更新
– update文

Delete
– テーブルの情報の削除
データベースの取り扱い
– delete文
7
Active Record とCRUD
Create
b = Book.new
b.title = ‘…’;
b.save
 Read
b = Book.find(id)

データベースの取り扱い
8
Active Record とCRUD
Update
b = Book.find(id)
b.title = ‘…’
b.save
 Delete
b = Book.find(id)
b.destroy

データベースの取り扱い
9
findメソッド
books = Book.find(:all,
:conditions=>[“title like ?”, % + Ruby + %]
# conditions の値は、SQLのwhere句の内容
データベースの取り扱い
10