我试图映射一个日期范围,并将它们作为数组传递给我的视图,如下所示:
from, to = Date.parse("2014-01-01"), Date.yesterday
date_range = (from..to)
@mapped_dates = date_range.map {|date| date.strftime("%b %e")}
在我看来,我在一些联合来文中提到了这些问题:
dateLabels = <%= raw @mapped_dates.to_json %>;
当我访问该页面时,会得到以下错误:
can't iterate from ActiveSupport::TimeWithZone
奇怪的是,我可以在Rails控制台中运行Ruby,它会返回我期望的结果:["Jan 1", "Jan 2", "Jan 3", ... ]
有人知道是什么导致了这个错误吗?
发布于 2015-06-23 10:25:20
你可以试试:
dateLabels = <%= raw @mapped_dates.as_json %>;
这个会回来的
["Jan 1", "Jan 2", "Jan 3", ... ]
关于ActiveSupport::TimeWithZone
问题,请做-
配置/初始化器/time_zone.rb中
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
https://stackoverflow.com/questions/30998768
复制相似问题