Railsの配列をランダムで取得して、○件のみ表示とする


やりたかったこと

hoge_cotroller.rb
@data= [
  ['aaa','AAA','あああ'],
  ['bbb','BBB','いいい'],
  ['ccc','CCC','ううう'],
  ['ddd','DDD','えええ'],
]

みたいな配列を

ランダムに取得してきて、それを5件だけview側に表示する。

ということをやりたかったので、調べてみました。

解決策

こちらを参考に下記のようにしました。

hoge_cotroller.rb
@data= [
  ['aaa','AAA','http://aaa.com'],
  ['bbb','BBB','http://bbb.com'],
  ['ccc','CCC','http://ccc.com'],
  ['ddd','DDD','http://ddd.com'],
・・・・・・・(中略)
  ['zzz','ZZZ','http://zzz.com'],
].sample(5)

hoge.html.erb
<ul>
  <% @data.each do |html_class, text, url| %>
    <li>
      <%= link_to text, url, class: html_class %>
   </li>
  <% end %>
</ul>