PERF: eager load field changes (#27675)

Fix N+1 issue for javascript_cache
stable backport for #27626
This commit is contained in:
Amanda Alves Branquinho 2024-07-02 16:43:08 -03:00 committed by GitHub
parent ee53f42c2c
commit 63c90e8c59
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -697,17 +697,21 @@ class Theme < ActiveRecord::Base
def build_theme_uploads_hash
hash = {}
upload_fields.each do |field|
hash[field.name] = Discourse.store.cdn_url(field.upload.url) if field.upload&.url
end
upload_fields
.includes(:javascript_cache, :upload)
.each do |field|
hash[field.name] = Discourse.store.cdn_url(field.upload.url) if field.upload&.url
end
hash
end
def build_local_theme_uploads_hash
hash = {}
upload_fields.each do |field|
hash[field.name] = field.javascript_cache.local_url if field.javascript_cache
end
upload_fields
.includes(:javascript_cache, :upload)
.each do |field|
hash[field.name] = field.javascript_cache.local_url if field.javascript_cache
end
hash
end
@ -826,6 +830,8 @@ class Theme < ActiveRecord::Base
if upload = field.upload
url = upload_cdn_path(upload.url)
contents << "$#{field.name}: unquote(\"#{url}\");"
else
contents << "$#{field.name}: unquote(\"\");"
end
else
contents << to_scss_variable(field.name, field.value)