RailsのActiveFormの使い方

昨日Railsで単一テーブル継承(Single Table Inheritance)の説明の時に作成したメッセージモデルですが、やつは一度に複数のアドレスに送信するものではありません。

でも実際には複数同時に送りたい!!なんて時には、モデルをもう一つかませます。こんな時に間にかますモデルには、ActiveFormを使うと、ValidationとかFormとかも通常のモデル同様行えて良い感じです。

まずはActiveFormプラグインのインストール。(参考:新井選手のブログ

ruby script/plugin install http://www.realityforge.org/svn/code/active-form/trunk/
mv vendor/plugins/trunk vendor/plugins/active_form

あとはMultiMessageクラスを作成。(ここはほんとはアドレスの切り抜きなんかでもうすこしいろいろしないといけないけど、ここでは省略。)

Read more

Railsで単一テーブル継承(Single Table Inheritance)

ActiveRecord以外のORマッパーはどうなのかよく知らないのですが、Rails(というかActiveRecord)では、DB上の一つのテーブルを複数のモデルで共有する「単一テーブル継承(Single Table Inheritance)」というものが存在します。今日はこの単一テーブル継承についてちょっと紹介します。

ここでは種々のメッセージ機能を単一テーブル継承で実現する方法を例に、単一テーブル継承について紹介します。今回想定するメッセージ機能はSNSなんかでよく使われるであろう以下の3つです。

  • 一般メッセージ:NormalMessage
  • 招待メッセージ:InvitationMessage
  • お問い合わせ:InquiryMessage

それでは、すべてのモデルのデータ保存先となるMessageテーブルの定義から始めましょう。

Read more