acts_as_mt_object

Ruby > Ruby on Rails
| | コメント(0) | トラックバック(0)

これは何か

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

リポジトリ

https://github.com/usualoma/acts_as_mt_object

トラックバック(0)

このブログ記事を参照しているブログ一覧: acts_as_mt_object

このブログ記事に対するトラックバックURL: https://tec.toi-planning.net/mtos/mt-tb.cgi/970

コメントする