Итак, Railsy мог бы использовать следующее в вашем контроллере:
@languages = Language.all.group_by(&:language)
Это даст вам хэш языков, сгруппированных по языку (erm ...) языка (<- возможно,переименуйте столбец в <code>name, чтобы избежать этой неоднозначности?):
# { 'English' => [language_1, language_2, etc...],
# 'French' => [language_3, language_4],
# etc... }
И тогда, на ваш взгляд,
<% @languages.each do |language_name, languages| %>
<h1>
<%= language_name %>
</h1>
<% languages.each do |language| %>
<p>
<%= language.link %>
</p>
<% end %>
<% end %>
Очевидно, что теги HTML могут быть любымиХотя я надеюсь, что это даст полезный пример.
Однако здесь есть одна оговорка - по мере роста вашей базы данных это может оказаться неэффективным способом работы.Скорее всего, вам лучше настроить отдельную модель для ссылок с отношениями «один ко многим» между языками и ссылками.
Например:
# langage.rb
has_many :links
# link.rb
belongs_to :language
# your controller
@languages = Language.includes(:links)
А потом что-то вродеследующее в представлении:
<% @languages.each do |language| %>
<h1>
<%= language.language %>
</h1>
<% language.links.each do |link| %>
<p>
<%= link.url %>
</p>
<% end %>
<% end %>