RAILS PRESS RUBY on RAILS, it’s DRY and COOL …

RSS Feed

RAILS PRESS RSS

Tag Cloud

はてなブックマーク - railspress.matake.jp の注目エントリー
象形文字くさび形文字ミイラそろばんの玉そろばんコーラン占いの板?象牙大英博物館
« 前の3件
Tagged by ActiveRecord

Posted on
2008/06/20

Tags
ActiveRecord, ActsAsBits, ActsAsSearchable, Plugin, Rails2.1, バグ

0 Comment

この記事をはてなブックマークに登録 この記事のはてなブックマーク数 この記事を livedoor クリップに登録この記事の livedoor クリップ数 このエントリを del.icio.us に追加
ブックマークに追加する

acts_as_bits PluginとRails 2.1のDirty tracking & Partial Updatesの相性が最悪

Rails 2.1系ではいくつか新機能が加わっていますが、「Partial Updates」もその一つです。

「Partial Updates」では、「Dirty tracking(Dirty Object)」というActiveRecordのモデルのattributesが変更されたかどうかをチェックする機能を使って、「変更された値のみをSQLに含める」ことを実現しています。

つまり、以下のようなコードを書いていても、実際に@personに変更が無ければ更新しないし、変更があった時でも変更点のみをSQLにしてくれるのです。

すばらしい!!

LANG : RUBY
  1. def edit
  2.   @person = params[:person]
  3.   @person.save!
  4. end

ところで、こいつは普通に使ってる分には本当に便利なのですが、どうも acts_as_bits と一緒には使えないっぽいです。

いま acts_as_bits を使った以下のようなモデルがあるとすると、

LANG : RUBY
  1. class Setting
  2.   acts_as_bits :operations => [:s1, :s2, :s3]
  3. end

こいつの変更が Dirty tracking で把握できていないようです。

» このエントリーには続きがあります。続きを読む »


Posted on
2008/06/14

Tags
ActiveRecord, Single Table Inheritance, ノウハウ

0 Comment

この記事をはてなブックマークに登録 この記事のはてなブックマーク数 この記事を livedoor クリップに登録この記事の livedoor クリップ数 このエントリを del.icio.us に追加
ブックマークに追加する

単一テーブル継承 (Single Table Inheritance) の上手な扱い方

Railsの単一テーブル継承 (Single Table Inheritance) を使うと、ActiveRecordではtypeカラムがnilでないオブジェクトのクラスはtypeを元に判定されます。

単一テーブル継承 (Single Table Inheritance) を使うには、テーブル定義時にtypeというカラムを定義します。

LANG : RUBY
  1. class CreatePeople <ActiveRecord::Migration
  2.   def self.up
  3.     create_table :people do |t|
  4.       t.column :name, :string
  5.         :
  6.       t.column :type, :string
  7.     end
  8.   end
  9.  
  10.   def self.down
  11.     drop_table :people
  12.   end
  13. end

ここでpeopleテーブルに対応したPersonというベースとなくクラスを以下のように定義したとします。

LANG : RUBY
  1. class Person <ActiveRecord::Base
  2.   # edit here
  3. end

こうするとPersonを継承したモデルは全てpeopleテーブルに保存され、typeカラムに各モデルのクラス名が入ります。

(単一テーブル継承の詳しい使い方はこちらをご覧ください:「Railsで単一テーブル継承(Single Table Inheritance) | 京の路」)

» このエントリーには続きがあります。続きを読む »


Posted on
2007/01/05

Tags
ActiveRecord, Rails入門, サンプルアプリ, 連載

0 Comment

この記事をはてなブックマークに登録 この記事のはてなブックマーク数 この記事を livedoor クリップに登録この記事の livedoor クリップ数 このエントリを del.icio.us に追加
ブックマークに追加する

Sample Application (BLOG) の作成 [3rd]


RAILS PRESS » [PRESS 0007] Sample Application (BLOG) の作成 [2nd]
の続きを。

モデルの関連づけ

今回はモデル間の関連を定義して、エントリー投稿時に投稿ユーザとエントリーを関連づけるようにします。
まずapp/model/user.rbに以下の記述を追加。
この記述でUserモデルがEntryおよびCommentとそれぞれ1対多の関係になります。

» このエントリーには続きがあります。続きを読む »


« 前の3件
ActiveRecordタグ