Browse Source

#279

feature/279
みてるぞ 2 days ago
parent
commit
f0065af00a
1 changed files with 8 additions and 5 deletions
  1. +8
    -5
      backend/app/controllers/tags_controller.rb

+ 8
- 5
backend/app/controllers/tags_controller.rb View File

@@ -2,8 +2,8 @@ class TagsController < ApplicationController
def index
post_id = params[:post]

name = params[:name].presence
category = params[:category].presence
name = params[:name].to_s.strip.presence
category = params[:category].to_s.strip.presence
post_count_between = (params[:post_count_gte].presence || -1).to_i,
(params[:post_count_lte].presence || -1).to_i
post_count_between[0] = nil if post_count_between[0] < 0
@@ -36,7 +36,9 @@ class TagsController < ApplicationController
.includes(:tag_name, tag_name: :wiki_page)
q = q.where(posts: { id: post_id }) if post_id.present?

q = q.where('tag_names.name LIKE ?', "%#{ name }%") if name
if name
q = q.where('tag_names.name LIKE ?', "%#{ ActiveRecord::Base.sanitize_sql_like(name) }%")
end
q = q.where(category: category) if category
q = q.where('tags.post_count >= ?', post_count_between[0]) if post_count_between[0]
q = q.where('tags.post_count <= ?', post_count_between[1]) if post_count_between[1]
@@ -77,7 +79,7 @@ class TagsController < ApplicationController

alias_rows =
TagName
.where('name LIKE ?', "#{ q }%")
.where('name LIKE ?', "#{ ActiveRecord::Base.sanitize_sql_like(q) }%")
.where.not(canonical_id: nil)
.pluck(:canonical_id, :name)

@@ -97,7 +99,8 @@ class TagsController < ApplicationController
base
.where(((with_nico ? '(tags.category = ? AND tag_names.name LIKE ?) OR ' : '') +
'tag_names.name LIKE ?'),
*(with_nico ? ['nico', "nico:#{ q }%"] : []), "#{ q }%")
*(with_nico ? ['nico', "nico:#{ ActiveRecord::Base.sanitise_sql_like(q) }%"] : []),
"#{ ActiveRecord::Base.sanitise_sql_like(q) }%")

tags =
if canonical_ids.present?


Loading…
Cancel
Save