2015-12-05 150 views
0

JSON输出我想换一个请求的JSON输出,现在它正在创建记录时安排,按日期排列

{"id":1,"title":"The Town","release_date":"2010-10-21","image":"/zX4fKmDXKGt4hlzhAJirdlRKFgO.jpg","user_id":null,"created_at":"2015-12-04T19:57:58.449Z","updated_at":"2015-12-04T19:57:58.449Z","movie_id":"23168","imdb_rating":"7.6"}, 
{"id":2,"title":"Interstellar","release_date":"2014-11-06","image":"/nBNZadXqJSdt05SHLqgT0HuC5Gm.jpg","user_id":null,"created_at":"2015-12-04T19:58:16.600Z","updated_at":"2015-12-04T19:58:16.600Z","movie_id":"157336","imdb_rating":"8.7"}, 
{"id":3,"title":"Django Unchained","release_date":"2013-01-16","image":"/5WJnxuw41sddupf8cwOxYftuvJG.jpg","user_id":null,"created_at":"2015-12-04T20:00:22.411Z","updated_at":"2015-12-04T20:00:22.411Z","movie_id":"68718","imdb_rating":"8.5"}, 
{"id":4,"title":"Moonrise Kingdom","release_date":"2012-05-30","image":"/uw88gWDC0W7AAEhMeQmtdXFV7yR.jpg","user_id":null,"created_at":"2015-12-04T20:00:41.054Z","updated_at":"2015-12-04T20:00:41.054Z","movie_id":"83666","imdb_rating":"7.8"}, 
{"id":5,"title":"Gone Girl","release_date":"2014-10-01","image":"/gdiLTof3rbPDAmPaCf4g6op46bj.jpg","user_id":null,"created_at":"2015-12-05T09:05:08.424Z","updated_at":"2015-12-05T09:05:08.424Z","movie_id":"210577","imdb_rating":"8.2"} 

但我想安排产品上市日期的数据,所以它看起来是这样的,

{"id":1,"title":"The Town","release_date":"2010-10-21","image":"/zX4fKmDXKGt4hlzhAJirdlRKFgO.jpg","user_id":null,"created_at":"2015-12-04T19:57:58.449Z","updated_at":"2015-12-04T19:57:58.449Z","movie_id":"23168","imdb_rating":"7.6"}, 
{"id":4,"title":"Moonrise Kingdom","release_date":"2012-05-30","image":"/uw88gWDC0W7AAEhMeQmtdXFV7yR.jpg","user_id":null,"created_at":"2015-12-04T20:00:41.054Z","updated_at":"2015-12-04T20:00:41.054Z","movie_id":"83666","imdb_rating":"7.8"}, 
{"id":3,"title":"Django Unchained","release_date":"2013-01-16","image":"/5WJnxuw41sddupf8cwOxYftuvJG.jpg","user_id":null,"created_at":"2015-12-04T20:00:22.411Z","updated_at":"2015-12-04T20:00:22.411Z","movie_id":"68718","imdb_rating":"8.5"}, 
{"id":5,"title":"Gone Girl","release_date":"2014-10-01","image":"/gdiLTof3rbPDAmPaCf4g6op46bj.jpg","user_id":null,"created_at":"2015-12-05T09:05:08.424Z","updated_at":"2015-12-05T09:05:08.424Z","movie_id":"210577","imdb_rating":"8.2"} 
{"id":2,"title":"Interstellar","release_date":"2014-11-06","image":"/nBNZadXqJSdt05SHLqgT0HuC5Gm.jpg","user_id":null,"created_at":"2015-12-04T19:58:16.600Z","updated_at":"2015-12-04T19:58:16.600Z","movie_id":"157336","imdb_rating":"8.7"}, 

这可以做到使用Ruby on Rails吗?

*编辑*

我用上面的JSON数据,将其放置到名为movies一个$范围。然后我用ng-repeat输出数据。我不能在重复中使用orderBy,因为我将我的物品放在行中。但是我认为如果我改变$scope.movies中的顺序,所以使用javascript重新排列顺序也是可行的。

回答

1

假设你的工作JSON,你可以使用

json_array.sort_by { |json| Time.parse(json['release_date']) }

2笔记这里:

  1. Time.parse每个产品的开销(效果会更好)排序前做(但是对于小集合,这不是问题)
  2. release_date不是一个日期,但时间...这是有点尴尬。 ;)
+0

我不知道如何实现您的代码。它看起来像JavaScript,但我希望有一个Ruby on Rails解决方案。如果是JS,那么我将如何使用它? –

+0

它的导轨代码 'json_array'是您列出的项目的数组。 'sort_by'是ruby中所有数组可用的方法(http://ruby-doc.org/core-2.2.0/Array.html)。一般来说,它会根据您传递给它的块的结果来获取所有项目和排列数组。 – djaszczurowski

+0

我很抱歉,但这有点让我头痛。第一个问题,代码是否进入movies_controller.rb文件,然后是索引定义? –