このコミットが含まれているのは:
@@ -34,6 +34,34 @@ class WikiPagesController < ApplicationController
|
||||
render json:
|
||||
end
|
||||
|
||||
def autolink_candidates
|
||||
locale = resolve_locale!
|
||||
language = params.fetch(:language, locale.language_code)
|
||||
return head :not_found unless language.is_a?(String)
|
||||
target_locale =
|
||||
if language == 'und'
|
||||
locale
|
||||
else
|
||||
Locale.where(language_code: language, deprecated_at: nil,
|
||||
code: Locale.codes.values).order(:code).first
|
||||
end
|
||||
return head :not_found unless target_locale
|
||||
|
||||
candidates = []
|
||||
unless language == 'und'
|
||||
names = TagDescription.joins(tag: :tag_names)
|
||||
.where(language_code: language, tag_names: { language_code: language })
|
||||
.pluck('tag_descriptions.tag_id', 'tag_descriptions.id', 'tag_names.name')
|
||||
candidates = names.map do |tag_id, description_id, name|
|
||||
WikiPageRepr.autolink_tag(target_locale, tag_id:, description_id:, name:)
|
||||
end
|
||||
end
|
||||
candidates.concat(TagGroup.order(:id).pluck(:id, :name).map do |id, name|
|
||||
WikiPageRepr.autolink_group(target_locale, id:, name:, language:)
|
||||
end)
|
||||
render json: candidates
|
||||
end
|
||||
|
||||
def show
|
||||
locale = resolve_locale!
|
||||
tag_description = TagDescription.find_by(id: params[:id], language_code: locale.language_code)
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする