Adding hashtag model
This commit is contained in:
@ -33,12 +33,12 @@ class Account < ApplicationRecord
|
||||
has_many :active_relationships, class_name: 'Follow', foreign_key: 'account_id', dependent: :destroy
|
||||
has_many :passive_relationships, class_name: 'Follow', foreign_key: 'target_account_id', dependent: :destroy
|
||||
|
||||
has_many :following, -> { order('follows.created_at desc') }, through: :active_relationships, source: :target_account
|
||||
has_many :followers, -> { order('follows.created_at desc') }, through: :passive_relationships, source: :account
|
||||
has_many :following, -> { order('follows.id desc') }, through: :active_relationships, source: :target_account
|
||||
has_many :followers, -> { order('follows.id desc') }, through: :passive_relationships, source: :account
|
||||
|
||||
# Block relationships
|
||||
has_many :block_relationships, class_name: 'Block', foreign_key: 'account_id', dependent: :destroy
|
||||
has_many :blocking, -> { order('blocks.created_at desc') }, through: :block_relationships, source: :target_account
|
||||
has_many :blocking, -> { order('blocks.id desc') }, through: :block_relationships, source: :target_account
|
||||
|
||||
has_many :media_attachments, dependent: :destroy
|
||||
|
||||
|
@ -77,6 +77,14 @@ class Status < ApplicationRecord
|
||||
ids.map { |id| statuses[id].first }
|
||||
end
|
||||
|
||||
def reblogged_by(limit)
|
||||
Account.where(id: reblogs.limit(limit).pluck(:account_id)).with_counters
|
||||
end
|
||||
|
||||
def favourited_by(limit)
|
||||
Account.where(id: favourites.limit(limit).pluck(:account_id)).with_counters
|
||||
end
|
||||
|
||||
def self.as_home_timeline(account)
|
||||
where(account: [account] + account.following).with_includes.with_counters
|
||||
end
|
||||
|
5
app/models/tag.rb
Normal file
5
app/models/tag.rb
Normal file
@ -0,0 +1,5 @@
|
||||
class Tag < ApplicationRecord
|
||||
HASHTAG_RE = /[?:^|\s|\.|>]#([[:word:]_]+)/i
|
||||
|
||||
validates :name, presence: true, uniqueness: true
|
||||
end
|
@ -7,7 +7,7 @@ class User < ApplicationRecord
|
||||
validates :account, presence: true
|
||||
|
||||
scope :prolific, -> { joins('inner join statuses on statuses.account_id = users.account_id').select('users.*, count(statuses.id) as statuses_count').group('users.id').order('statuses_count desc') }
|
||||
scope :recent, -> { order('created_at desc') }
|
||||
scope :recent, -> { order('id desc') }
|
||||
scope :admins, -> { where(admin: true) }
|
||||
|
||||
has_settings do |s|
|
||||
|
Reference in New Issue
Block a user