diff options
author | Rhenium <rhenium@rhe.jp> | 2014-03-10 22:53:10 +0900 |
---|---|---|
committer | Rhenium <rhenium@rhe.jp> | 2014-03-10 22:53:10 +0900 |
commit | 11734607bcc6f09b4e2286ded62753d2e64f748e (patch) | |
tree | e4e55335bfda756549e3ceaaf33bf8d25af78427 /app/models/tweet.rb | |
parent | b8f19fefe781620adb8034279bac9dc08f1fbcac (diff) | |
download | aclog-11734607bcc6f09b4e2286ded62753d2e64f748e.tar.gz |
eager load user, favoriters and retweeters (tweets#*)
Diffstat (limited to 'app/models/tweet.rb')
-rw-r--r-- | app/models/tweet.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/app/models/tweet.rb b/app/models/tweet.rb index 96795cb..64f1fcd 100644 --- a/app/models/tweet.rb +++ b/app/models/tweet.rb @@ -12,7 +12,7 @@ class Tweet < ActiveRecord::Base scope :recent, ->(days = 3) { where("tweets.id > ?", snowflake_min(Time.zone.now - days.days)) } scope :reacted, ->(count = nil) { where("reactions_count >= ?", (count || 1).to_i) } - scope :not_protected, -> { includes(:user).references(:user).where(users: { protected: false }) } + scope :not_protected, -> { joins(:user).references(:user).where(users: { protected: false }) } scope :registered, -> { joins(user: :account).references(:account).where(accounts: { status: Account::ACTIVE }) } scope :max_id, -> id { where("tweets.id <= ?", id.to_i) if id } @@ -127,6 +127,10 @@ class Tweet < ActiveRecord::Base tweet.reload end + def self.eager_load_for_html + self.includes(:user).preload(:favoriters, :retweeters) + end + def self.filter_by_query(query) strings = [] query.gsub!(/"((?:\\"|[^"])*?)"/) {|m| strings << $1; "##{strings.size - 1}" } |