2012-07-31 71 views
0

我使用Instagram API獲取用戶的照片源。輸出看起來是這樣的:從Hashie :: Mash Loop獲取隨機結果和限制輸出Ruby on Rails

[#<Hashie::Mash attribution=nil caption=nil comments=#<Hashie::Mash count=0 data=[]> created_time="1330231732" filter="Sutro" id="1403234234201396589_3002382" images=#<Hashie::Mash low_resolution=#<Hashie::Mash height=306 url="http://distilleryimage5.s3.amazonaws.com/8fd08dfsdfsdf111e180d51231380fcd7e_6.jpg" width=306> 

我可以高興地通過循環和顯示所有圖像或使用該特定的一個:

Instagram.user_recent_media(@client.user.id).each do |test| 
    %img{:src=>"#{test.images.low_resolution.url}"} 

怎麼可能得到一個隨機結果出來,極限只顯示一個圖像?我試過使用限制(x)但是會引發錯誤。我只想隨機顯示一張圖片,而不是整個流。

+1

'.sample'是否適合你? – ScottJShea 2012-07-31 12:46:08

+0

WOOOPW!謝謝,甚至不知道這一點。乾杯。小號 – simonmorley 2012-07-31 14:16:52

回答

1
media = Instagram.user_recent_media(@client.user.id) 
puts media.class 

給出:

Array 

知道它是一個數組使用sample方法,你就可以輕鬆地獲得一個隨機元素:

random = media.sample 
puts "#{random.images.low_resolution.url}" 

公告稱,sample方法在Ruby的命名choice 1.8.7。