diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/favourite.rb | 2 | ||||
-rw-r--r-- | app/models/follow.rb | 6 | ||||
-rw-r--r-- | app/models/status.rb | 7 |
3 files changed, 9 insertions, 6 deletions
diff --git a/app/models/favourite.rb b/app/models/favourite.rb index 20260f46b..ad5380f43 100644 --- a/app/models/favourite.rb +++ b/app/models/favourite.rb @@ -2,7 +2,7 @@ class Favourite < ActiveRecord::Base belongs_to :account, inverse_of: :favourites belongs_to :status, inverse_of: :favourites - has_one :stream_entry, as: :activity + has_one :stream_entry, as: :activity, dependent: :destroy def verb :favorite diff --git a/app/models/follow.rb b/app/models/follow.rb index aa723d705..3521247e8 100644 --- a/app/models/follow.rb +++ b/app/models/follow.rb @@ -2,13 +2,13 @@ class Follow < ActiveRecord::Base belongs_to :account belongs_to :target_account, class_name: 'Account' - has_one :stream_entry, as: :activity + has_one :stream_entry, as: :activity, dependent: :destroy validates :account, :target_account, presence: true validates :account_id, uniqueness: { scope: :target_account_id } def verb - :follow + self.destroyed? ? :unfollow : :follow end def target @@ -20,7 +20,7 @@ class Follow < ActiveRecord::Base end def content - "#{self.account.acct} started following #{self.target_account.acct}" + self.destroyed? ? "#{self.account.acct} is no longer following #{self.target_account.acct}" : "#{self.account.acct} started following #{self.target_account.acct}" end def title diff --git a/app/models/status.rb b/app/models/status.rb index 72bf1b790..be616dce6 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -4,8 +4,11 @@ class Status < ActiveRecord::Base belongs_to :thread, foreign_key: 'in_reply_to_id', class_name: 'Status' belongs_to :reblog, foreign_key: 'reblog_of_id', class_name: 'Status' - has_one :stream_entry, as: :activity - has_many :favourites, inverse_of: :status + has_one :stream_entry, as: :activity, dependent: :destroy + + has_many :favourites, inverse_of: :status, dependent: :destroy + has_many :reblogs, foreign_key: 'reblog_of_id', class_name: 'Status' + has_many :replies, foreign_key: 'in_reply_to_id', class_name: 'Status' validates :account, presence: true validates :uri, uniqueness: true, unless: 'local?' |