我正在尝试根据每张照片的评论数量(count_comments
)从Flickr API按降序排列一组照片对象。我正在使用以下代码。
def rank_photos(photos)
photos.sort_by { |photo| photo.count_comments * -1 }
end
但是我收到以下错误消息。
*':否定参数(ArgumentError)
这是Array的样子
[{“id”=>“38280904752”,“所有者”=>“131718287 @ N07”, “secret”=>“abe0b93180”,“server”=>“4583”,“farm”=> 5, “title”=>“IMG_3640”,“ispublic”=> 1,“isfriend”=> 0,“isfamily”=> 0, “count_comments”=>“0”,“tags”=>“华盛顿邮报dc web women codeher17 dctech科技“, “url_m”=>“https://farm5.staticflickr.com/4583/38280904752_abe0b93180.jpg”,“height_m”=>“333”,“width_m”=>“500”},{“id”=>“38312540901”, “owner”=>“131718287 @ N07”,“secret”=>“7b6e6805d4”,“server”=>“4568”, “farm”=> 5,“title”=>“IMG_3458”,“ispublic”=> 1,“isfriend”=> 0, “isfamily”=> 0,“count_comments”=>“0”,“tags”=>“华盛顿邮报直播网络 女性代码17 dctech科技“, “url_m”=>“https://farm5.staticflickr.com/4568/38312540901_7b6e6805d4.jpg”,“height_m”=>“500”,“width_m”=>“333”},{“id”=>“38281453252”, “owner”=>“131718287 @ N07”,“secret”=>“438293cffd”,“server”=>“4539”, “farm”=> 5,“title”=>“IMG_3460”,“ispublic”=> 1,“isfriend”=> 0, “isfamily”=> 0,“count_comments”=>“0”,“tags”=>“华盛顿邮报直播网络 女性代码17 dctech科技“, “url_m”=>“https://farm5.staticflickr.com/4539/38281453252_438293cffd.jpg”,“height_m”=>“333”,“width_m”=>“500”}
为什么会抛出此错误?
答案 0 :(得分:-1)
count_comments
是一个字符串,因此您应该先将其转换为数字。在此过程中,您还可以完全消除乘法。
def rank_photos(photos)
photos.sort_by { |photo| -photo.count_comments.to_i }
end