Unsuccessful attempt to properly eager load screenshots.
Currently the virtual attribute "image_url" in the screenshots model apparently runs one SQL query each to get the packages data.
This commit is contained in:
parent
88dfb33721
commit
76d19f7e78
3 changed files with 14 additions and 8 deletions
|
|
@ -3,16 +3,22 @@ class PackagesController < ApplicationController
|
|||
@packages = Package
|
||||
|
||||
if params[:with_screenshots]=='yes'
|
||||
@packages = @packages.joins(:screenshots).where('screenshots.approved = ?', true)
|
||||
#@packages = @packages.joins(:screenshots).where('screenshots.approved = ?', true)
|
||||
|
||||
# Limit the packages to those that have approved screenshots.
|
||||
# Also eager-load the screenshots.
|
||||
@packages = @packages.includes(:screenshots).where("screenshots.approved"=>true)
|
||||
#@packages = @packages.where("screenshots.approved"=>true)
|
||||
end
|
||||
|
||||
if params[:search]
|
||||
query = '%'+params[:search]+'%'
|
||||
#if params[:search]
|
||||
#query = '%'+params[:search]+'%'
|
||||
# TODO: Index on lower(…) is missing. Does not scale.
|
||||
# TODO: Consider using a serious search engine like Xapian or ElasticSearch.
|
||||
@packages = @packages.where("lower(description) like lower(?) or lower(name) like lower(?)", query, query)
|
||||
end
|
||||
#@packages = @packages.where("lower(description) like lower(?) or lower(name) like lower(?)", query, query)
|
||||
#end
|
||||
|
||||
#@packages = @packages.order('name').includes(:screenshots).limit(20)
|
||||
@packages = @packages.order('name').limit(20)
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue