Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby中的简单自定义范围_Ruby On Rails_Ruby_Arrays_Range_Days - Fatal编程技术网

Ruby on rails Ruby中的简单自定义范围

Ruby on rails Ruby中的简单自定义范围,ruby-on-rails,ruby,arrays,range,days,Ruby On Rails,Ruby,Arrays,Range,Days,我有一个名为_scope的Rails,它使用一个条件从表中提取一周中的特定天数,如下所示: :conditions => [ 'EXTRACT(DOW FROM bookdate) IN (?)', (1..6).to_a ] 1..6日期范围将是一个变量,取决于用户想要的日期 它产生了这个SQL (EXTRACT(DOW FROM bookdate) IN (1,2,3,4,5,6) 我的问题是一周的天数不是一个简单的范围。。。ie 1..6可以正常工作(周一…周六),但如果说6..

我有一个名为_scope的Rails,它使用一个条件从表中提取一周中的特定天数,如下所示:

:conditions => [ 'EXTRACT(DOW FROM bookdate) IN (?)', (1..6).to_a ]
1..6日期范围将是一个变量,取决于用户想要的日期

它产生了这个SQL

(EXTRACT(DOW FROM bookdate) IN (1,2,3,4,5,6)
我的问题是一周的天数不是一个简单的范围。。。ie 1..6可以正常工作(周一…周六),但如果说6..2不能正常工作(周六-周二)。。。作为一个ruby范围,或者它需要是6,7,1,2,而不是6,5,4,3,2(假设6..2在ruby中工作,但它没有)

如何为一周中的几天创建一个自定义范围,以适应这样的日期范围

有什么想法吗


谢谢,

如果您想要一个函数来生成要包含在
中的值的范围:条件
将适用于星期二和星期一这样的范围,那么:

def day_range(from, to)
  if from <= to
    (from..to).to_a
  else
    (from..7).to_a + (1..to).to_a
  end
end
然后,如果需要,只需将日期名称映射到日期编号

irb(main):032:0> day_range(1, 6)
=> [1, 2, 3, 4, 5, 6]
irb(main):033:0> day_range(6, 2)
=> [6, 7, 1, 2]