0

我有一个问题,在 json 中响应数据。这是一个代码:

@data  [
            actions_by_type.each do |action|
              [ action[:date].to_i, action[:activity] ]
            end 
        ]
respond_to do |format|
      format.json { render :json => @data }
    end

但回应是:

...{"date":"2013-04-29T20:20:00Z","activity":"87"}...

为什么rails将我的int时间转换为字符串日期时间?

4

2 回答 2

2

x.each返回x所以这个:

x = actions_by_type.each do |action|
  [ action[:date].to_i, action[:activity] ]
end

相当于:

x = actions_by_type

您想使用map而不是each

@data = actions_by_type.map do |action|
  [ action[:date].to_i, action[:activity] ]
end 
于 2013-06-01T22:27:37.200 回答
2

您应该使用.map而不是.each.

@data = actions_by_type.map do |action|
            [ action[:date].to_i, action[:activity] ]
        end 

respond_to do |format|
    format.json { render :json => @data }
end

.each的结果将@dataactions_by_type而不是新数组。

于 2013-06-01T22:29:26.963 回答