Rails отображает хэш в конце списка

Я использую Rails 3.2.11. У меня есть модель статьи:

class Article < ActiveRecord::Base
  attr_accessible :content, :name
end

Мой контроллер (индексное действие):

класс ArticlesController ‹ ApplicationController

  def index
    @grouped = {}
    Article.all.each do |article|
      letter = article.name.slice(0,1)
      @grouped[letter] ||= []
      @grouped[letter] << article
    end
  end

Это создает алфавитный список всех названий статей для обзорной страницы. index.html.haml это:

%p
  %ul
    - @grouped.keys.sort.each do |letter|
      %h1
        = letter
      %ul
        = @grouped[letter].each do |article|
          %li
            = link_to article.name, article

Теперь у меня есть список всех названий статей, отсортированный по буквам, но в конце всех статей определенной буквы вот хеш, отображающий все данные:

A

- Albert
- Altman
- Armstrong
[#<Article id: 3, name: "Albert", content: "dpio osahu psauhd asuhd psauh piuh asuhd uh isah iu...", created_at: "2013-01-11 11:51:30", updated_at: "2013-01-11 11:51:30">, #<Article id: 6, name: "Altman", content: "aosdi asoijd poisajpo isajdpoia sjdpoia jsapoij sap...", created_at: "2013-01-11 12:36:10", updated_at: "2013-01-11 12:36:10">, #<Article id: 7, name: "Armstrong", content: "osfduhsdo sdpiuh dspiufh sdpioufhsdioufh sdpiufh sd...", created_at: "2013-01-11 12:42:08", updated_at: "2013-01-11 12:42:08">]

Как я могу избавиться от финального хэша?


person user929062    schedule 11.01.2013    source источник


Ответы (1)


= @grouped[letter].each do |article|

замените эту строку на эту

- @grouped[letter].each do |article|

each возвращает итерированную коллекцию. Вам не нужно печатать это, вы уже распечатали все отдельные элементы.

person Sergio Tulentsev    schedule 11.01.2013