【发布时间】:2011-05-03 04:42:03
【问题描述】:
我认为我正在尝试做的事情非常简单,我真的不确定为什么这不起作用。我正在使用 Rails 3。
基本上,我只是想从现有模型的列中选择不同的值,然后将它们全部打印出来。在大多数情况下,这是可行的,但我认为 .each 循环也会在循环结束时打印整个数组。 (
我有一个名为 Attractions 的模型,每个景点都有一个 Category(为了简单起见,现在 Category 在 DB 中被硬编码)。
这是吸引力模型和定义的类方法“all_categories”...
class Attraction < ActiveRecord::Base
def self.all_categories
Attraction.select("DISTINCT category")
end
end
这是景点控制器
class AttractionsController < ApplicationController
def index
@categories = Attraction.all_categories
@attractions = Attraction.find(:all)
end
def show
@attraction = Attraction.find(params[:id])
end
end
在我看来,这是造成麻烦的代码 - 不是火箭科学,只是一个简单的迭代器,...
<%= @categories.each do |c| %>
<%= c.category %><br/>
<% end %>
很简单,对吧?这一切都运行良好,但这是我在运行该代码段时看到的:
Architecture
Art
Fashion
Music
[#<Attraction category: "Architecture">, #<Attraction category: "Art">, #<Attraction category: "Fashion">, #<Attraction category: "Music">]
为什么要打印最后的数组?我想要的只是一个类别列表:
Architecture
Art
Fashion
Music
显然,我是 Ruby/Rails 的新手,我已经尝试到处寻找解决方案。我有什么明显的遗漏吗?
感谢任何帮助。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3