Да, вы можете сделать это.
Ruby 1.9 раствор
В Ruby 1.8 это решение можно использовать, когда порядок названий не имеет значения. В Ruby 1.9 заголовки будут появляться в том порядке, в котором они были вставлены в хеш.
Просто поместите эту переменную в действие вашего контроллера:
@hash = { 'Oracle' => @q_oracle, 'Ruby and Rails' => @q_ruby }
И получите доступ к этой переменной с вашей точки зрения:
<% @hash.each do |t, a| %>
<h2><%= t %></h2>
<% a.each do |q| %>
<%= link_to(q.title + ' (' + q.answer_count.to_s + ') ' + q.question_id.to_s, 'http://stackoverflow.com/' + q.question_answers_url) %> </br>
<% end %>
<% end %>
Ruby 1.8 с отсортированными ключами
Этот метод сортирует ключи так, чтобы они отображались в алфавитном порядке.
<% @hash.keys.sort.each do |t| %>
<h2><%= t %></h2>
<% @hash[t].each do |q| %>
<%= link_to(q.title + ' (' + q.answer_count.to_s + ') ' + q.question_id.to_s, 'http://stackoverflow.com/' + q.question_answers_url) %> </br>
<% end %>
<% end %>
Ruby 1.8 с массивами
Этот метод будет вести себя как Ruby 1.9 в любой версии ruby - заголовки будут отображаться в порядке их добавления.
Переменная @hash
должна быть инициализирована как:
@hash = [ ['Oracle', @q_oracle], ['Ruby and Rails',@q_ruby] ]
Вид должен быть обновлен до:
<% @hash.each do |title_with_questions| %>
<h2><%= title_with_questions[0] %></h2>
<% title_with_questions[1].each do |q| %>
<%= link_to(q.title + ' (' + q.answer_count.to_s + ') ' + q.question_id.to_s, 'http://stackoverflow.com/' + q.question_answers_url) %> </br>
<% end %>
<% end %>