多くの異なるタイプのサブスクリプションを保持できるモデルが1つしかないのは問題ありませんか?
たとえば、アプリケーション内でコメント、ユーザー、フォーラムスレッド、ニュース記事を購読できるとします。ただし、それらはすべて異なるタイプの列を持っています。これは、関連付けの設定でどのように表示されるかを示しています。
Users
attr_accessible :name, :role
has_many :subscriptions
has_many :comments, :threads, :articles, :through => :subscriptions
Comments
:content, :rating, :number
has_many :subscriptions
has_many :subscribers, :through => :subscriptions, :class_name => 'User'
Threads
:title, :type, :main_category
has_many :subscriptions
has_many :subscribers, :through => :subscriptions, :class_name => 'User'
Articles
:news_title, :importance
has_many :subscriptions
has_many :subscribers, :through => :subscriptions, :class_name => 'User'
Subscription
:content, :rating, :number, :name, :role, :title, :type, :main_category,
:news_title, :importance, :user_id, :comment_id, :thread_id, :article_id
belongs_to :user, :comment, :thread, :article
基本的に、1つのサブスクリプションモデルで、ユーザーはコメント、スレッド、または記事、さらには3つすべてを一度にサブスクライブすることを選択できます。このように機能しますか?1つのモデルがすべての異なるタイプのサブスクリプションを保持できる場合、特に属性を比較して特定のユーザー向けの記事などの特定のことを行う場合はどうでしょうか。