rails 比较日期年月、数组、返回hash格式的json数据、rails结构体

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值