只有一种模型可以容纳多种不同类型的订阅是否可以?
例如,假设您可以订阅应用程序内的评论、用户、论坛主题和新闻文章。不过,它们都有不同类型的列。这是关联设置的外观。
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
基本上,使用一种订阅模式,用户可以选择订阅评论、主题或文章,甚至同时订阅所有三者。它可以这样工作吗?一个模型可以容纳所有不同类型的订阅,尤其是当您想要比较属性以执行某些事情(例如为某些用户提供文章)时?