aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/tweet.rb
diff options
context:
space:
mode:
authorRhenium <rhenium@rhe.jp>2014-03-10 22:53:10 +0900
committerRhenium <rhenium@rhe.jp>2014-03-10 22:53:10 +0900
commit11734607bcc6f09b4e2286ded62753d2e64f748e (patch)
treee4e55335bfda756549e3ceaaf33bf8d25af78427 /app/models/tweet.rb
parentb8f19fefe781620adb8034279bac9dc08f1fbcac (diff)
downloadaclog-11734607bcc6f09b4e2286ded62753d2e64f748e.tar.gz
eager load user, favoriters and retweeters (tweets#*)
Diffstat (limited to 'app/models/tweet.rb')
-rw-r--r--app/models/tweet.rb6
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}" }