首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在Ruby/Rails中映射一个日期范围

无法在Ruby/Rails中映射一个日期范围
EN

Stack Overflow用户
提问于 2015-06-23 09:19:50
回答 2查看 339关注 0票数 0

我试图映射一个日期范围,并将它们作为数组传递给我的视图,如下所示:

代码语言:javascript
运行
复制
from, to = Date.parse("2014-01-01"), Date.yesterday
date_range = (from..to)

@mapped_dates = date_range.map {|date| date.strftime("%b %e")}

在我看来,我在一些联合来文中提到了这些问题:

代码语言:javascript
运行
复制
dateLabels = <%= raw @mapped_dates.to_json %>;

当我访问该页面时,会得到以下错误:

代码语言:javascript
运行
复制
can't iterate from ActiveSupport::TimeWithZone

奇怪的是,我可以在Rails控制台中运行Ruby,它会返回我期望的结果:["Jan 1", "Jan 2", "Jan 3", ... ]

有人知道是什么导致了这个错误吗?

EN

Stack Overflow用户

回答已采纳

发布于 2015-06-23 10:25:20

你可以试试:

代码语言:javascript
运行
复制
 dateLabels = <%= raw @mapped_dates.as_json %>;

这个会回来的

代码语言:javascript
运行
复制
 ["Jan 1", "Jan 2", "Jan 3", ... ]

关于ActiveSupport::TimeWithZone问题,请做-

配置/初始化器/time_zone.rb中

代码语言:javascript
运行
复制
  class ActiveSupport::TimeWithZone
    def as_json(options = {})
      if ActiveSupport::JSON::Encoding.use_standard_json_time_format
        xmlschema
      else
        %(#{time.strftime("%Y/%m/%d %H:%M:%S")} #{formatted_offset(false)})
      end
    end
  end 
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30998768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档