昨日に引き続きメモ
ActiveRecord復習 - おもしろWEBサービス開発日記
オブジェクトをDBに直接保存する方法その1
- text列を持ったテーブルを作る
- Model定義内に下記のように書く
serialize :column_name
あとは普通に保存したり呼び出したりできる。ちなみにDBにはYAML形式にして保存しているらしい。
オブジェクトをDBに直接保存する方法その2
モデルの一属性に対応するオブジェクトを設定することで、DBデータの型を抽象化する方法がある。つまり、擬似的にオブジェクトを保存できるらしい。やり方は省略(使うときが少なそうなので)
オブジェクトの識別
2つのモデルオブジェクトは、同じクラスのインスタンスで同じ主キー(一般的にはid)を持っていれば"=="でtrueになる!!らしい。もちろん他の属性が異なる値でも。これは復習しといてよかった。
低レベルのDB接続
executeメソッドでできるらしい。
find_by_sql使用時に注意すること
例えばこんなことをしたときにハマるらしい。どこがハマるポイントかわかりますか?
people = Person.find_by_sql("select name from people") people.each do |person| person.age += 1 person.save end
find_by_sql使用時にid列を取得しなかった時にはその結果をDBに格納することができず、しかもエラーもでないらしい。だから、下記のようにselect * にしておいた方が無難。
people = Person.find_by_sql("select * from people") people.each do |person| person.age += 1 person.save end
今日はここまで
明日こそリレーションシップやる。
参考
RailsによるアジャイルWebアプリケーション開発 第2版
- 作者: Dave Thomas,David Heinemeier Hansson,Leon Breedt,Mike Clark,Andreas Schwarz,James Duncan Davidson,Justin Gehtland,前田修吾
- 出版社/メーカー: オーム社
- 発売日: 2007/10/26
- メディア: 大型本
- 購入: 18人 クリック: 300回
- この商品を含むブログ (138件) を見る