json.shixuns_count @results.total_count json.shixun_list do json.array! @results.with_highlights(multiple: true) do |obj, highlights| json.merge! obj.to_searchable_json json.challenge_names obj.challenges.pluck(:subject) # 去除开头标点符号 reg = /^[,。?:;‘’!“”—……、]/ # 附件的替换 atta_reg = /!\[.*]\(\/api\/attachments\/\d+\)/ highlights[:description]&.first&.sub!(reg, '') highlights[:description]&.map{|des| des.gsub(atta_reg, '')} highlights[:content]&.first&.sub!(reg, '') highlights[:content]&.map{|des| des.gsub(atta_reg, '')} json.title highlights.delete(:name)&.join('...') || obj.searchable_title json.description highlights[:description]&.join('...') || Util.extract_content(obj.description)[0..300]&.gsub(atta_reg, '') json.content highlights json.level level_to_s(obj.trainee) json.subjects obj.subjects.uniq do |subject| json.(subject, :id, :name) end end end