class TasksController < ApplicationController
# GET /tasks
# GET /tasks.xml
def index
tasks = Task.all
today = Time.now
event_tasks = []
group_members = []
i = 0
tasks.each do |task|
if compare_date(today,task.schedule_start_at)|| compare_date(today,task.schedule_finish_at)
event = Event.new
event.eventID = i
event.cssClass = task.status
event.title = task.name
event.endDateTime = task.schedule_finish_at
event.startDateTime = task.schedule_start_at
member = task.read_attribute(:executor)
event.tester_id = is_member(group_members,member)
i = i+1
event_tasks << event.to_hash #返回键值对;没有to_hash只返回值
end
end
respond_to do |format|
format.js { render :json => event_tasks }
end
end
# 判断年月是否相等
# select_date为前端选择的时间
# db_date为数据库时间
def compare_date(select_date,db_date)
# return false unless (db_date.kind_of?(Time)&&select_date.kind_of?(Time))
return false if db_date.nil?||select_date.nil?
return false unless (db_date.kind_of?(Time)||select_date.kind_of?(Time))
return true if (select_date.year == db_date.year) && (select_date.month == db_date.month)
return false
end
# 判断数组里是否有该元素;没有,添加到数组中,返回数组序号;有,返回数组序号
def is_member(group_members,member)
group_members << member unless group_members.include? member
group_members.index(member)
end
end
class Event < Struct.new(:eventID,:title,:startDateTime,:endDateTime,:cssClass,:tester_id)
def to_hash
Hash[*members.zip(values).flatten]
end
end