修改like方法

This commit is contained in:
sylor_huang@126.com 2020-04-22 12:01:45 +08:00
parent 7142e88256
commit 0b1a7af108
2 changed files with 5 additions and 10 deletions

View File

@ -9,16 +9,8 @@ class ProjectsController < ApplicationController
is_admin = current_user && current_user&.admin?
scope = Projects::ListQuery.call(params.merge(is_admin: is_admin, user_id: current_user.try(:id)))
@total_count = scope.size
other_projects = scope.page(params[:page]).limit(params[:limit] || 15)
projects = paginate(scope)
Rails.logger.info("##########____other_projects_projects_as_json__________#############{other_projects.as_json}")
Rails.logger.info("##########____projects_as_json__________#############{projects.as_json}")
@projects = projects
Rails.logger.info("##########___@projects__________#############{@projects.as_json}")
@projects = paginate(scope)
end
def create

View File

@ -6,8 +6,11 @@ module Matchable
# joins(:repository).where(%w[ projects.name projects.identifier repositories.identifier ].map { |f| "LOWER(#{f}) LIKE :q" }.join(' OR '), q: "%#{keywords.split(" ").join('|')}%") unless keywords.blank?
# }
scope :like, lambda { |keywords|
joins(:repository).where("LOWER(projects.name) like ? or LOWER(projects.identifier) like ? or LOWER(repositories.identifier) like ?", "%#{keywords.downcase}","%#{keywords.downcase}","%#{keywords.downcase}") unless keywords.blank?
joins(:repository).where(%w[ projects.name projects.identifier repositories.identifier ].map { |f| "LOWER(#{f}) LIKE :q" }.join(' OR '), q: "%#{keywords.downcase}%") unless keywords.blank?
}
# scope :like, lambda { |keywords|
# joins(:repository).where("LOWER(projects.name) like ? or LOWER(projects.identifier) like ? or LOWER(repositories.identifier) like ?", "%#{keywords.downcase}","%#{keywords.downcase}","%#{keywords.downcase}") unless keywords.blank?
# }
scope :with_project_category, ->(category_id) { where(project_category_id: category_id) unless category_id.blank? }
scope :with_project_language, ->(language_id) { where(project_language_id: language_id) unless language_id.blank? }
scope :with_project_type, ->(project_type) { where(project_type: project_type) if Project.project_types.include?(project_type) }