これは何か
ActiveRecord という Ruby の ORM から、Movable Type で作成したデータベースを直接(Movable Type を介さずに)利用するためのプラグインです。
できること
- 「entry_title」のようなカラムを「title」だけで参照できるようになります。
 - メタデータを透過的に参照できます。
 - カスタムフィールドのデータを透過的に参照できます。
 
できないこと
- メタデータとカスタムフィールドの値を保存することはできません。
 - メタデータやカスタムフィールドをキーにして find することはできません。
 
インストール
Bundler を使っている場合は、Gemfile に以下の1行を追加します。
gem 'acts_as_mt_object'
そして bundle を実行します
$ bundle
使い方
クラスの定義
クラス名が「Entry」の場合は acts_as_mt_object を挿入するだけで mt_entry のテーブルを読みに行きます。
class MT::Entry < ActiveRecord::Base
  acts_as_mt_object
end
クラス名が「Entry」でない場合は MT のクラス名を明示します。
class Plan < ActiveRecord::Base
  acts_as_mt_object :mt_class => :Entry
end
データベースを分けている場合は以下のような形で接続することもできます。(actsasmt_objectの機能ではないですが)
class MT::Entry < ActiveRecord::Base
  establish_connection (::Rails.env + '_mt').to_sym
  acts_as_mt_object
end
フィールドの参照
このような形で利用できます。
> entry = MT::Entry.find(343)  # find by entry_id
 => #<MT::Entry entry_id: 343 ...
> entry.title  # column data
 => "Title"
> entry.current_revision  # meta data
 => 1
> entry.price # custom field's data
 => 30000
                
                    

コメントする