This commit is contained in:
ronger 2017-05-26 17:48:47 +08:00
parent 2fb56e814a
commit f87771e3ee
6 changed files with 221 additions and 156 deletions

View File

@ -22,9 +22,15 @@ gem "builder", "3.0.0"
gem 'acts-as-taggable-on', '2.4.1'
gem 'sunspot_rails', '2.2.0'
gem 'sunspot_solr', '2.2.0'
gem 'will_paginate'
gem 'will_paginate', '~> 3.0'
gem 'progress_bar'
gem 'nokogiri', "~> 1.6.0"
gem 'ox' # For faster XML Parsing, use Ox or Nokogiri. Ox has highest priority if available.
#gem 'nokogiri' # For faster XML Parsing. If neither Ox nor Nokogiri available, we'll fall back to REXML.
gem 'httpclient' # Absolutely necessary for soap4r-ng. Net::HTTP Fallback is quite broken, so don't let that happen.
gem 'soap4r-ng'
# Gems used only for assets and not required
# in production environments by default.
group :assets do

BIN
trustie2/app/.DS_Store vendored

Binary file not shown.

View File

@ -144,6 +144,8 @@ class OpenSourceProjectsController < ApplicationController
end
end
#将搜索关键词中的程序语言相关词分离出来
def getSearchWords(key_words)
language_array = ["java","c++","ruby","php"," c ","c#","vb "," vb","delphi","asp "," asp"]
@ -169,6 +171,9 @@ class OpenSourceProjectsController < ApplicationController
end
def search
require 'logger'
logger = Logger.new(STDOUT) #输出到控制台
if params[:name].nil? || params[:name] == ""
respond_to do |format|
format.html { redirect_to open_source_projects_url }
@ -188,33 +193,69 @@ class OpenSourceProjectsController < ApplicationController
language = ''
language << @language
#search_words << ' ' + @language if @language
# 请求starlee服务
# require 'net/http'
#
# star_projects = []
# parse_string = "http://172.16.128.35:5000/correlation_search?q=" + @name
#
# # parse_string = "http://172.20.10.3:5000/correlation_search?q=" + @name
# parse_string.gsub! " ","%20"
#access java webservice by zyr
oldverb = $VERBOSE; $VERBOSE = nil
require 'iconv'
$VERBOSE = oldverb
require 'rubygems'
require 'soap/wsdlDriver'
a_URL = "http://localhost:8083/testWebService_war/services/solrquery?wsdl"
soap_client = SOAP::WSDLDriverFactory.new(a_URL).create_rpc_driver
#params = {:arg0 => "rails"}
result = soap_client.query(@name)
#logger.info(result)
return_projects = []
#project_ids = [770839,3674257,139,15397,98681,209133,770319,770675,770684,770839,907638,988140,1032900,1032911,1116837,1185243,1185345]
result.each do |id|
id = id.to_i
project = OpenSourceProject.find_by_id(id)
return_projects << project
end
require 'will_paginate/array'
per_page_option = 10
@projects_count = return_projects.length.to_i
@projects_pages = Paginator.new @projects_count, per_page_option, params['page'] #custom paginator,to show the 10 records the default paginator of solr gets
logger.info(@projects_pages.page)
current_page = @projects_pages.page
@open_source_projects = return_projects[(current_page-1)*per_page_option,per_page_option]
respond_to do |format|
format.html { render :layout => "base" }
end
end
end
# 请求solr单机服务
#require 'net/http'
# parse_string = "http://localhost:8080/solr/production1/select?q=" + @name
# #parse_string.gsub! " ","%20"
# url = URI.parse(parse_string)
# req = Net::HTTP::Get.new(url.to_s)
# res = Net::HTTP.start(url.host, url.port) {|http|
# http.request(req)
# http.request(req)
# }
# star_items = res.body
# return_items = res.body
# #logger.info(return_items)
# require 'json'
# star_items = JSON.parse(star_items)["items"]
# star_project_ids = star_items[0,5]
# star_projects = []
# # 查询出id对应的项目
# star_project_ids.each do |id|
# id = id.to_i
# project = OpenSourceProject.find_by_id(id)
# star_projects << project
# end
# return_items = JSON.parse(star_items)["items"]
#_projects = []
# 查询出id对应的项目
#合成solr请求
=begin
search = OpenSourceProject.search do
without(:filtration,0)
# with(:created_time, Date.new(params[:created_time].to_i, 01, 01)..Date.new(params[:created_time].to_i+1, 01, 01)) if params[:created_time].present? && !('earlier'.eql? params[:created_time])
@ -238,56 +279,27 @@ class OpenSourceProjectsController < ApplicationController
boost_fields :description => 0.5
boost_fields :language => 1.0
#boost(function { log(sum(:composite_score, 1))^2000 })
boost(function { log(:composite_score)^1000 })
end
boost(function { log(:composite_score)^1000 })
end
end
=end
#adjust_solr_params do |params|
# params[:q] += " AND something_s:more"
#end
#order_by_function(:sum, :view_num_ossean, [:product, :composite_score, '0.01'], :desc)
if "".eql?(search_words)
order_by(:composite_score, :desc)
else
order_by(:score, :desc)
end
paginate :page => params[:page], :per_page => 10 # the default paginator of solr,10 records for each page
end
per_page_option = 10
@hits = search.hits
@open_source_projects = search.results
@projects_count = search.total #get total count of search
#合并 star_projects和solr_projects
open_source_projects_index = 0
# while open_source_projects_index<@open_source_projects.length do
# project = @open_source_projects[open_source_projects_index]
# id = project.id
# star_projects.each do |star_project|
# if id.to_i == star_project.id
# @open_source_projects.delete(project)
# open_source_projects_index -= 1
# break
# end
# end
# open_source_projects_index += 1
# if "".eql?(search_words)
# order_by(:composite_score, :desc)
# else
# order_by(:score, :desc)
# end
# paginate :page => params[:page], :per_page => 10 # the default paginator of solr,10 records for each page
# end
#
# if params[:page]==nil || params[:page]==1
# star_index = star_projects.length-1
# while star_index >= 0 do
# star_project = star_projects[star_index]
# @open_source_projects.unshift(star_project)
# star_index -= 1
# end
# end
@projects_pages = Paginator.new @projects_count, per_page_option, params['page'] #custom paginator,to show the 10 records the default paginator of solr gets
respond_to do |format|
format.html { render :layout => "base" }
end
end
end
# per_page_option = 10
# @hits = search.hits
# @open_source_projects = search.results
# @projects_count = search.total #get total count of search
def showbug
@open_source_project = OpenSourceProject.find(params[:id])
@ -450,19 +462,19 @@ class OpenSourceProjectsController < ApplicationController
redirect_to master_apply_open_source_project_path
end
#echarts表的ajax函数
def ajax
name = params[:name]
osp = OpenSourceProject.find(:first, :select => 'id', :conditions => ['name=?',name])
id = osp.id
respond_to do |format|
format.json {render :json => {:osp_id => id}}
end
end
private
def require_master
@ -475,7 +487,7 @@ class OpenSourceProjectsController < ApplicationController
rescue ActiveRecord::RecordNotFound
render_404 unless @open_source_project.present?
end
#分页查找项目关联的不同类型帖子
def find_relative_topics(memo_type, sort_by)
#approach 1
@ -491,36 +503,36 @@ class OpenSourceProjectsController < ApplicationController
@topics_pages = Paginator.new @topics_count, per_page_option, params['page']
@relative_memo_ids=RelativeMemoToOpenSourceProject.where(osp_id: @open_source_project.id, memo_type: memo_type).order(sort_by).offset(@topics_pages.offset).limit(@topics_pages.per_page)
end
#get memos' info by memo_type
def get_memos_info_by_type memo_type, osp_id, rmtosp_name, size
memos = RelativeMemoToOpenSourceProject.find_by_sql ["SELECT r.* FROM #{rmtosp_name} mt" +
memos = RelativeMemoToOpenSourceProject.find_by_sql ["SELECT r.* FROM #{rmtosp_name} mt" +
" INNER JOIN relative_memos r ON mt.relative_memo_id = r.id" +
" WHERE mt.osp_id = #{osp_id} AND r.memo_type = 'news' ORDER BY r.created_time DESC LIMIT #{size} "]
end
#get memos' count by memo_type
def get_memos_count_by_type memo_type, osp_id, rmtosp_name, size
memos_count = (RelativeMemoToOpenSourceProject.find_by_sql ["SELECT r.id FROM #{rmtosp_name} mt" +
memos_count = (RelativeMemoToOpenSourceProject.find_by_sql ["SELECT r.id FROM #{rmtosp_name} mt" +
" INNER JOIN relative_memos r ON mt.relative_memo_id = r.id" +
" WHERE mt.osp_id = #{osp_id} AND r.memo_type = #{memo_type}"]).count
return memos_count
return memos_count
end
# find relative_topics of osp order by
def find_osp_relative_topics
size = 5
#rmtosp_name = RelativeMemoToOpenSourceProject.getTableName @open_source_project.id
#rmtosp_name = RelativeMemoToOpenSourceProject.getTableName @open_source_project.id
RelativeMemoToOpenSourceProject.set_table_name RelativeMemoToOpenSourceProject.getTableName @open_source_project.id
#@relative_memo_ids=RelativeMemoToOpenSourceProject.includes(:relative_memos).where(osp_id: @open_source_project.id).order('match_weight DESC').limit(10)#.pluck(:relative_memo_id)
#@news = get_memos_info_by_type "'news'", @open_source_project.id, rmtosp_name, size
#@news_count = get_memos_count_by_type "'news'", @open_source_project.id, rmtosp_name, size
# @news = RelativeMemoToOpenSourceProject.find_by_sql ["SELECT r.* FROM #{rmtosp_name} mt" +
# @news = RelativeMemoToOpenSourceProject.find_by_sql ["SELECT r.* FROM #{rmtosp_name} mt" +
# " INNER JOIN relative_memos r ON mt.relative_memo_id = r.id" +
# " WHERE mt.osp_id = #{@open_source_project.id} AND r.type = 'news' ORDER BY r.created_time DESC LIMIT #{size} "]
# @news_count = (RelativeMemoToOpenSourceProject.find_by_sql ["SELECT r.id FROM #{rmtosp_name} mt" +
# @news_count = (RelativeMemoToOpenSourceProject.find_by_sql ["SELECT r.id FROM #{rmtosp_name} mt" +
# " INNER JOIN relative_memos r ON mt.relative_memo_id = r.id" +
# " WHERE mt.osp_id = #{@open_source_project.id} AND r.type = 'news'"]).count
@news = RelativeMemoToOpenSourceProject.includes(:relative_memos).where(osp_id: @open_source_project.id, memo_type: 'news').order('created_time DESC').limit(size)
@ -528,12 +540,12 @@ class OpenSourceProjectsController < ApplicationController
#@blogs = get_memos_info_by_type "'blog'", @open_source_project.id, rmtosp_name, size
#@blogs_count = get_memos_count_by_type "'blog'", @open_source_project.id, rmtosp_name, size
#@posts = get_memos_info_by_type "'topic'", @open_source_project.id, rmtosp_name, size
#@posts_count = get_memos_count_by_type "'topic'", @open_source_project.id, rmtosp_name, size
@blogs = RelativeMemoToOpenSourceProject.includes(:relative_memos).where(osp_id: @open_source_project.id, memo_type: 'blog').order('created_time DESC').limit(size)
@blogs_count = RelativeMemoToOpenSourceProject.includes(:relative_memos).where(osp_id: @open_source_project.id, memo_type: 'blog').count
#
#
@posts = RelativeMemoToOpenSourceProject.includes(:relative_memos).where(osp_id: @open_source_project.id, memo_type: 'topic').order('created_time DESC').limit(size)
@posts_count = RelativeMemoToOpenSourceProject.includes(:relative_memos).where(osp_id: @open_source_project.id, memo_type: 'topic').count
@ -541,10 +553,10 @@ class OpenSourceProjectsController < ApplicationController
#@tech_trend_topics_ids=RelativeMemoToOpenSourceProject.where(osp_id: @open_source_project.id, memo_type: 'news').order('created_time DESC, match_weight DESC, review_num DESC').limit(7) #.pluck(:relative_memo_id)
#@tech_trend_topics=RelativeMemo.where(id: @tech_trend_topics_ids).order('review_num DESC')
end
#用于在每个项目详情页面上显示对应职位工资信息表而定义的函数(查询数据库中的数据)
def getHighcharts
end
@ -557,26 +569,26 @@ class OpenSourceProjectsController < ApplicationController
idArray = []
desArray=[]
tmp_result = []
# 用于存储相似项目的id
relativeIdList = []
unrelativeIdList = []
if flag == "simility"
# 首先查看一下simility_recommend_up_down中有没有排名在前size位的 且up_down_value值大于0的数据
similityList = SimilityRecommendUpDown.select("relative_osp_id").where("osp_id=? and up_down_value > ?", id,0).order("up_down_value desc, last_up_time desc").limit(size)
# 查看up_down_value值<0的记录 去除掉这些推荐记录
unsimilityList = SimilityRecommendUpDown.select("relative_osp_id").where("osp_id=? and up_down_value < ?", id,0)
# 将similityList结果中relative_id存储到relativeIdList数组中
similityList.each do |s|
relativeIdList << s.relative_osp_id.to_i
end
unsimilityList.each do |s|
unrelativeIdList << s.relative_osp_id.to_i
end
# 表示推荐数量不够5个 应该再从simility_recommend表中取出size-similityList.length个相似推荐结果
size2 = size - similityList.length
if size2 == 0
@ -605,13 +617,13 @@ class OpenSourceProjectsController < ApplicationController
end
end #do结尾
end
#根据relativeIdList构造tmp_result
relativeIdList.each do |relative_id|
result = SimilityRecommend.where("osp_id=? and relative_osp_id = ?", id, relative_id).limit(1)
tmp_result << result[0]
end
elsif flag == "relation"
tmp_result = RelationRecommend.select("relative_osp_id , weight").where("osp_id=? and weight != ?",id,1.0).limit(size)
end
@ -671,7 +683,7 @@ class OpenSourceProjectsController < ApplicationController
jobRequirement_count = JobRequirement.find_by_sql("select count(*) as num from job_requirements where id in (" + str_in + ") and year(created_time)=" + i.to_s + " and month(created_time)=" + j.to_s)
count = jobRequirement_count[0].num.to_i
countArray << count
#薪资情况
highcharts_avg_min_max_salary = Highchart.find(:first, :select => 'avg(min_salary) as avg_min_salary, avg(max_salary) as avg_max_salary', :conditions => ['year(jr.created_time)=? and month(jr.created_time)=? and hi.osp_id=?',i.to_s,j.to_s,id.to_s],
:joins => 'as hi inner join job_requirements as jr on hi.relative_memo_id=jr.id')
@ -713,17 +725,17 @@ class OpenSourceProjectsController < ApplicationController
end
return dataArray,data2Array,data3Array
end
#定义第二个图的函数根据项目获取每个地区职位需求和薪资情况参数为osp对应的id
def chart2(id)
dataArray = []
cityArray = []
countArray_city = []
countSum = 0
rangeArray = []#第二个图表的返回值
rangeArray = []#第二个图表的返回值
cityResultArray = []
highcharts_city_count = Highchart.find(:all, :select => 'city,count(*) as num', :conditions => ['osp_id=? and city is not null',id],
highcharts_city_count = Highchart.find(:all, :select => 'city,count(*) as num', :conditions => ['osp_id=? and city is not null',id],
:group => 'city', :order => 'num desc')
if highcharts_city_count.length == 0
return nil
@ -735,7 +747,7 @@ class OpenSourceProjectsController < ApplicationController
cityArray << city
countArray_city << count
end
#计算所有百分比大于等于5%的
sumRate = 0.0
for i in (0..cityArray.length - 1)
@ -746,7 +758,7 @@ class OpenSourceProjectsController < ApplicationController
sumRate = sumRate + rate
data = [city,rate]
dataArray << data
#第二张图表
cityResultArray << city
highchart_avg_min_max_salary = Highchart.find(:first,:select => 'avg(min_salary) as avg_min_salary, avg(max_salary) as avg_max_salary', :conditions => ['city=? and osp_id=?',city,id])
@ -760,7 +772,7 @@ class OpenSourceProjectsController < ApplicationController
otherRate = 100 - sumRate
data = ['其他',otherRate]
dataArray << data
#第二张图表
str_in = changeStrArrayToStringSplitByComma(cityResultArray)
if str_in == ""
@ -775,7 +787,7 @@ class OpenSourceProjectsController < ApplicationController
end
return dataArray,cityResultArray,rangeArray
end
#定义当前项目工作经验需求对比分析 饼图
def chart5(id)
dataArray = []
@ -783,7 +795,7 @@ class OpenSourceProjectsController < ApplicationController
countArray = []
rangeArray = []#记录平均最小、最大工资范围
#查找experience字段
highcharts_experience_count = Highchart.find(:all, :select => 'experience,count(*) as num', :conditions => ['osp_id=? and experience!=?',id,''],
highcharts_experience_count = Highchart.find(:all, :select => 'experience,count(*) as num', :conditions => ['osp_id=? and experience!=?',id,''],
:group => 'experience', :order => 'num desc')
if highcharts_experience_count.length == 0
dataArray = nil
@ -803,10 +815,10 @@ class OpenSourceProjectsController < ApplicationController
data = [experience, rate]
dataArray << data
end
#查找当前项目和experience对应的avg_salary_min/max
experienceArray.each do |e|
highchart_avg_min_max_salary = Highchart.find(:first, :select => 'avg(min_salary) as avg_min_salary, avg(max_salary) as avg_max_salary', :conditions => ['osp_id=? and experience=?',id,e])
avg_min_salary = highchart_avg_min_max_salary.avg_min_salary.to_i
avg_max_salary = highchart_avg_min_max_salary.avg_max_salary.to_i
@ -816,15 +828,15 @@ class OpenSourceProjectsController < ApplicationController
end
return dataArray,experienceArray,rangeArray
end
#绘制当前开源软件与相似开源软件职位需求数量对比柱状图
def chart7(simility_osp_array,id)
jobRequirements_osp = [] #记录用于显示的6个开源软件对象
jobRequirements_count = []
jobRequirements_drilldown_city = []
jobRequirements_drilldown_count = []
#查找当前id对应的项目
osp_current = OpenSourceProject.find(id)
#找相似软件中最热的5个软件
@ -838,7 +850,7 @@ class OpenSourceProjectsController < ApplicationController
jobRequirements_count << countItems_simility #将相似软件的结果存储到结果数组中
jobRequirements_osp << osp
end
#查找每个软件对应6个城市的职位需求情况-drilldown
hotOsps.each do |osp|
#首先查找当前软件的热门城市和对应的职位需求数量
@ -846,19 +858,19 @@ class OpenSourceProjectsController < ApplicationController
jobRequirements_drilldown_city << jobRequirements_drilldown_city_tmp
jobRequirements_drilldown_count << jobRequirements_drilldown_count_tmp
end
return jobRequirements_osp,jobRequirements_count,jobRequirements_drilldown_city,jobRequirements_drilldown_count
end
#绘制当前开源软件与相似开源软件薪资对比柱状图
def chart8(simility_osp_array,id)
salary_osp = [] #记录用于显示的6个开源软件对象
salary_value = []
salary_drilldown_city = []
salary_drilldown_value = []
#查找当前id对应的项目
osp_current = OpenSourceProject.find(id)
#找相似软件中最热的5个软件
@ -874,7 +886,7 @@ class OpenSourceProjectsController < ApplicationController
salary_value << avg_salary #将相似软件的结果存储到结果数组中
salary_osp << osp
end
#查找每个软件对应6个城市的职位需求情况-drilldown
hotOsps.each do |osp|
#首先查找当前软件的热门城市和对应的薪资情况
@ -882,12 +894,12 @@ class OpenSourceProjectsController < ApplicationController
salary_drilldown_city << salary_drilldown_city_tmp
salary_drilldown_value << salary_drilldown_value_tmp
end
return salary_osp,salary_value,salary_drilldown_city,salary_drilldown_value
end
#将查询结果拼成1,2,3的形式
def changeResultsToStringSplitByComma(array)
result = ""
@ -902,7 +914,7 @@ class OpenSourceProjectsController < ApplicationController
end
return result
end
#将字符串数组变成123的形式
def changeStrArrayToStringSplitByComma(array)
result = ''
@ -917,14 +929,14 @@ class OpenSourceProjectsController < ApplicationController
end
return result
end
#对datetime类型日期分离 年、月、日
def splitDate(time)
timeArray = time.to_s.split(' ')
date = timeArray[0].split('-')
return date[0],date[1],date[2]
end
#按年月时间将统计数据合并
def mergeByYearAndMonth(yearArray, monthArray, countArray)
i = 0
@ -942,10 +954,10 @@ class OpenSourceProjectsController < ApplicationController
end
i = i + 1
end
return yearArray,monthArray,countArray
end
#计算数组中所有值的和
def sum(array)
result = 0
@ -954,7 +966,7 @@ class OpenSourceProjectsController < ApplicationController
end
return result
end
#找到软件数组中对应的n个热门软件
def hottestN_osp(array, n)
result = [] #用来存储最热门的n个软件
@ -985,7 +997,7 @@ class OpenSourceProjectsController < ApplicationController
end
return result
end
#查找开源软件对应的热门的N个城市 和对应的职位需求数量
def hottestN_cityAndCount_by_osp(osp,n)
city = [] #记录排名靠前的n个
@ -1018,8 +1030,8 @@ class OpenSourceProjectsController < ApplicationController
end
return city,count
end # hottestN_cityAndCount_by_osp函数结尾
#查找开源软件对应的热门的N个城市 和对应的平均薪资
def hottestN_cityAndSalary_by_osp(osp,n)
city = [] #记录排名靠前的n个
@ -1051,7 +1063,7 @@ class OpenSourceProjectsController < ApplicationController
city = city[0,n]
count = count[0,n]
end
#根据city数组中的数据查找对应的avg_salary
city.each do |c|
highchart_avg_salary = Highchart.find(:first, :select => "avg(max_salary) as max, avg(min_salary) as min", :conditions => ['osp_id=? and city=?',osp.id,c])
@ -1060,7 +1072,7 @@ class OpenSourceProjectsController < ApplicationController
avg_salary_tmp = (avg_max_salary+avg_min_salary)/2
avg_salary << avg_salary_tmp
end
return city,avg_salary
end # hottestN_cityAndSalary_by_osp函数结尾

View File

@ -153,25 +153,79 @@ class RelativeMemosController < ApplicationController
if "".eql?(params[:name]) || params[:name].nil?
params[:name] = " "
end
#请求服务
require 'net/http'
require 'json'
require 'logger'
logger = Logger.new(STDOUT) #输出到控制台
per_page_option=10
@sort_tag = params[:sort_field].to_s
search = RelativeMemo.search do
fulltext params[:name].downcase do
fields(:title)
fields(:tags)
boost_fields :title => 3.0
boost_fields :tags => 2.0
#phrase_fields :title => 2.0
end
if "review_num DESC".eql?(params[:sort_field].to_s)
order_by(:review_num, :desc)
elsif "review_num ASC".eql?(params[:sort_field].to_s)
order_by(:review_num, :asc)
elsif "created_time DESC".eql?(params[:sort_field].to_s)
order_by(:created_time, :desc)
elsif "created_time ASC".eql?(params[:sort_field].to_s)
order_by(:created_time, :asc)
end
@name = params[:name].downcase
#access java webservice by zyr
oldverb = $VERBOSE; $VERBOSE = nil
require 'iconv'
$VERBOSE = oldverb
require 'rubygems'
require 'soap/wsdlDriver'
a_URL = "http://localhost:8083/testWebService_war/services/memoquery?wsdl"
soap_client = SOAP::WSDLDriverFactory.new(a_URL).create_rpc_driver
result = soap_client.query(@name)
#memo_ids = [58,79,98,2207482,2207571,2207591,2207657,2207710,2208867,2209348,2209667,2209694,2210046]
#logger.info(result)
return_memos = []#
result.each do |id|
id = id.to_i
memo = RelativeMemo.find_by_id(id)
return_memos << memo
end
@topics_count = return_memos.length.to_i
@topics_pages = Paginator.new @topics_count, per_page_option, params[:page]
current_page = @topics_pages.page
@topics = return_memos[(current_page-1)*per_page_option,per_page_option]
respond_to do |format|
format.html { render :layout => "base"
}
end
end
#
# memo_ids = [58,79,98,2207482,2207571,2207591,2207657,2207710,2208867,2209348,2209667,2209694,2210046]
# relative_memos = []
# # 查询出id对应的项目
# memo_ids.each do |id|
# id = id.to_i
# memo = RelativeMemo.find_by_id(id)
# logger.info(memo.title)
#
# relative_memos << memo
# end
#search = RelativeMemo.search do
# fulltext params[:name].downcase do
# fields(:title)
# fields(:tags)
# boost_fields :title => 3.0
# boost_fields :tags => 2.0
# #phrase_fields :title => 2.0
# end
# if "review_num DESC".eql?(params[:sort_field].to_s)
# order_by(:review_num, :desc)
# elsif "review_num ASC".eql?(params[:sort_field].to_s)
# order_by(:review_num, :asc)
# elsif "created_time DESC".eql?(params[:sort_field].to_s)
# order_by(:created_time, :desc)
# elsif "created_time ASC".eql?(params[:sort_field].to_s)
# order_by(:created_time, :asc)
# end
#order_by(:created_time, :desc)
#with(:created_time, Date.new(year,01,01)..Date.new(year+1,01,01))
@ -180,17 +234,9 @@ class RelativeMemosController < ApplicationController
# # with :parent_id, nil
# with :source, params[:name].downcase
# end
paginate :page => params[:page], :per_page => per_page_option
end
@topics = search.results
@topics_count = search.total
@topics_pages = Paginator.new @topics_count, per_page_option, params[:page]
respond_to do |format|
format.html { render :layout => "base"
}
end
end
#paginate :page => params[:page], :per_page => per_page_option
#end
#@topics = search.results
private

BIN
trustie2/app/views/.DS_Store vendored Normal file

Binary file not shown.

View File

@ -323,6 +323,7 @@
<%= pagination_links_full @projects_pages, @projects_count %>
</ul>
</div>
<% html_title('项目搜索') -%>
<!-- ajax user trace zhangxunhui begin -->