从数组中获取X天

时间:2015-06-22 19:23:22

标签: ruby ruby-on-rails-4

我有一个填充Datetime对象的数组:

[Mon, 22 Jun 2015, Tue, 23 Jun 2015, Wed, 24 Jun 2015, Thu, 25 Jun 2015, Fri, 26 Jun 2015, Sat, 27 Jun 2015, Sun, 28 Jun 2015]

我知道如何从数组中选择我想要的东西 例如:

week.select{|x|x.monday? || x.wednesday?}

但是现在当我尝试编写一个从数组中选择日期的方法时,我似乎无法弄清楚如何将这些方法传递给select语句:

例如:

def get_days(wkn, desired_days*)
get_week = Model.week(2)
get_days_of_week = get_week.select{|x|x.desired_day[monday]?|| x.desired_day[sunday]} 
end

任何想法?

desired_days将是一个用户说他们想要mon。和太阳。 所以星期一,太阳将按照期望的日期传递 该方法将获得整整一周的范围 然后我想选择所需的日子。

2 个答案:

答案 0 :(得分:2)

我愿意:

def get_days(wkn, *desired_days)
  get_week = Model.week(2)
  get_days_of_week = get_week.select { |x| desired_days.include? x.strftime("%A") }
end

答案 1 :(得分:1)

假设wkn是周数,而desired_days是一组天名,例如'monday'或'wednesday':

def get_days(wkn, desired_days)
  get_week = Model.week(wkn)
  get_days_of_week = get_week.select do |x|
    desired_days.any? { |day_name| x.send(day_name + '?') }
  end 
end