「Sequel」(2009/01/10 (土) 02:04:47) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
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
■チートシート:
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
表示オプション
横に並べて表示:
変化行の前後のみ表示: