我认为我尝试做的事情非常简单,但我真的不确定为什么这不起作用。我正在使用Rails 3。
基本上,我只是想从现有模型中选择某个列中不同的值,并将它们全部打印出来。大部分情况下,这是可以实现的,但是在我的视图中,每次循环都会将整个数组一并打印出来。
我有一个名为Attractions的模型,每个景点都有一个类别(现在为了简单起见,类别被硬编码在数据库中)。
这是Attraction Model和定义的一个类方法“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很陌生,并且我已经尝试了各种方法来解决这个问题。是否有什么显而易见的问题我忽略了?
非常感谢任何帮助。