diff options
| -rw-r--r-- | app/models/discussion.rb | 2 | ||||
| -rw-r--r-- | lib/generators/inboxes/templates/install.rb | 3 | ||||
| -rw-r--r-- | lib/inboxes/active_record_extension.rb | 6 |
3 files changed, 9 insertions, 2 deletions
diff --git a/app/models/discussion.rb b/app/models/discussion.rb index a5b12ca..675547d 100644 --- a/app/models/discussion.rb +++ b/app/models/discussion.rb @@ -7,6 +7,8 @@ class Discussion < ActiveRecord::Base # creater has_many :messages, :dependent => :destroy + belongs_to :discussable, :polymorphic => true + # participants of discussion (speakers) has_many :speakers, :dependent => :destroy has_many :users, :through => :speakers diff --git a/lib/generators/inboxes/templates/install.rb b/lib/generators/inboxes/templates/install.rb index 436ac98..e89c128 100644 --- a/lib/generators/inboxes/templates/install.rb +++ b/lib/generators/inboxes/templates/install.rb @@ -2,6 +2,7 @@ class InstallInboxes < ActiveRecord::Migration def self.up create_table :discussions do |t| t.integer :messages_count, :default => 0 # counter cache + t.references :discussable t.timestamps end @@ -26,4 +27,4 @@ class InstallInboxes < ActiveRecord::Migration drop_table :discussions drop_table :messages end -end
\ No newline at end of file +end diff --git a/lib/inboxes/active_record_extension.rb b/lib/inboxes/active_record_extension.rb index 2a5bac8..d6e7e36 100644 --- a/lib/inboxes/active_record_extension.rb +++ b/lib/inboxes/active_record_extension.rb @@ -7,5 +7,9 @@ module Inboxes has_many :speakers, :dependent => :destroy has_many :discussions, :through => :speakers end + + def acts_as_discussable + has_many :discussions, :as => :discussable + end end -end
\ No newline at end of file +end |
