「Sequel」の編集履歴(バックアップ)一覧に戻る

Sequel - (2009/01/10 (土) 02:04:47) のソース

■チートシート:
http://d.hatena.ne.jp/yshgt/20080629/1214720897

http://merblog.tt25.org/2008-12-14/merb-and-sequel-by-yellowpages-dot-com




■SingleTableInheritance(単一テーブル継承):
http://markmail.org/message/bgy3uinkrlz2er2f



ActiveRecordのSTIは
Sequelではポリモーフィックモデルと呼んでいる。
set_model を使ってカラム名 type でハッシュマップの値をclass に与えてデータセットを作る:

  dataset.set_model(:type, {1 => Person, 2 => Company})


  class Addressable < Sequel::Model(:addresses)
    dataset.set_row_filter {|v| eval(v[:type]).new(v)}
  end

  class Person < Addressable
  end

  class Company < Addressable
  end


これは、マクロでも出来る。

  class Sequel::Model
    def self.set_polymorphic(type_column = :type)
      dataset.set_row_filter {|v| eval(v[type_column]).new(v)}
    end
  end
記事メニュー
目安箱バナー