これは何か
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
コメントする