我正在运行Rails 3.2.11。我有一个文章模型:
class Article < ActiveRecord::Base
attr_accessible :content, :name
end
我的控制器(索引操作(是:
类文章控制器<应用程序控制器
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">]
我怎样才能去掉最后的散列?
= @grouped[letter].each do |article|
用这个替换那条线路
- @grouped[letter].each do |article|
each
返回其迭代的集合。你不需要打印,你已经打印了所有单独的元素。