From 49a5b819bd061fa8064ed97b9d08bc54f72f85bd Mon Sep 17 00:00:00 2001 From: r888888888 Date: Wed, 22 Nov 2017 15:46:30 -0800 Subject: [PATCH] eliminate ambiguities in pool search --- app/models/pool.rb | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/app/models/pool.rb b/app/models/pool.rb index c56ac622c..d712d282f 100644 --- a/app/models/pool.rb +++ b/app/models/pool.rb @@ -24,29 +24,29 @@ class Pool < ApplicationRecord module SearchMethods def deleted - where("is_deleted = true") + where("pools.is_deleted = true") end def undeleted - where("is_deleted = false") + where("pools.is_deleted = false") end def series - where("category = ?", "series") + where("pools.category = ?", "series") end def collection - where("category = ?", "collection") + where("pools.category = ?", "collection") end def series_first - order("(case category when 'series' then 0 else 1 end), name") + order("(case pools.category when 'series' then 0 else 1 end), pools.name") end def name_matches(name) name = normalize_name_for_search(name) name = "*#{name}*" unless name =~ /\*/ - where("lower(name) like ? escape E'\\\\'", name.to_escaped_for_sql_like) + where("lower(pools.name) like ? escape E'\\\\'", name.to_escaped_for_sql_like) end def search(params) @@ -58,15 +58,15 @@ class Pool < ApplicationRecord end if params[:id].present? - q = q.where("id in (?)", params[:id].split(",")) + q = q.where("pools.id in (?)", params[:id].split(",")) end if params[:description_matches].present? - q = q.where("lower(description) like ? escape E'\\\\'", "%" + params[:description_matches].mb_chars.downcase.to_escaped_for_sql_like + "%") + q = q.where("lower(pools.description) like ? escape E'\\\\'", "%" + params[:description_matches].mb_chars.downcase.to_escaped_for_sql_like + "%") end if params[:creator_name].present? - q = q.where("creator_id = (select _.id from users _ where lower(_.name) = ?)", params[:creator_name].tr(" ", "_").mb_chars.downcase) + q = q.where("pools.creator_id = (select _.id from users _ where lower(_.name) = ?)", params[:creator_name].tr(" ", "_").mb_chars.downcase) end if params[:creator_id].present? @@ -74,21 +74,21 @@ class Pool < ApplicationRecord end if params[:is_active] == "true" - q = q.where("is_active = true") + q = q.where("pools.is_active = true") elsif params[:is_active] == "false" - q = q.where("is_active = false") + q = q.where("pools.is_active = false") end params[:order] ||= params.delete(:sort) case params[:order] when "name" - q = q.order("name") + q = q.order("pools.name") when "created_at" - q = q.order("created_at desc") + q = q.order("pools.created_at desc") when "post_count" - q = q.order("post_count desc") + q = q.order("pools.post_count desc") else - q = q.order("updated_at desc") + q = q.order("pools.updated_at desc") end if params[:category] == "series" @@ -135,9 +135,9 @@ class Pool < ApplicationRecord def self.find_by_name(name) if name =~ /^\d+$/ - where("id = ?", name.to_i).first + where("pools.id = ?", name.to_i).first elsif name - where("lower(name) = ?", normalize_name_for_search(name)).first + where("lower(pools.name) = ?", normalize_name_for_search(name)).first else nil end