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 | 
