Ruby on rails Ruby/Rails-。每个迭代器在循环结束时打印整个数组
我想我想做的很简单,我真的不知道为什么这不起作用。我使用的是Rails 3 本质上,我只是尝试从现有模型中的列中选择不同的值,并将它们全部打印出来。在大多数情况下,这是可行的,但在我的视图中,每个循环最后也会在循环的末尾打印整个数组 我创建了一个称为景点的模型,每个景点现在都有一个类别。为了简单起见,类别在数据库中是硬编码的 这是吸引模型和一个类方法,所有类别都定义了Ruby on rails Ruby/Rails-。每个迭代器在循环结束时打印整个数组,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我想我想做的很简单,我真的不知道为什么这不起作用。我使用的是Rails 3 本质上,我只是尝试从现有模型中的列中选择不同的值,并将它们全部打印出来。在大多数情况下,这是可行的,但在我的视图中,每个循环最后也会在循环的末尾打印整个数组 我创建了一个称为景点的模型,每个景点现在都有一个类别。为了简单起见,类别在数据库中是硬编码的 这是吸引模型和一个类方法,所有类别都定义了 class Attraction < ActiveRecord::Base def self.all_categor
class Attraction < ActiveRecord::Base
def self.all_categories
Attraction.select("DISTINCT category")
end
end
显然,我是Ruby/Rails新手,我一直在尝试寻找解决方案。有什么明显的东西我遗漏了吗
谢谢你的帮助
# Change this line with an =:
<%= @categories.each do |c| %>
# ...to this:
<% @categories.each do |c| %>
您只希望对每个方法的块产生副作用,而不希望对返回值进行插值。这是因为当您这样做时会发生这种情况
def self.all_categories
Attraction.select("DISTINCT category")
end
创建一个吸引对象,其属性由场定义。你能行
def self.all_categories
Attraction.select("DISTINCT category").map(&:category)
end
虽然我必须结合DigitalRoss建议的解决方案来避免最后的阵列打印,但这也很有效。谢谢也有同样的问题,最后放弃了,在谷歌上搜索我的问题,希望出现stackoverflow线程。这解决了我的问题。在我的例子中,我使用HAML,所以change=解决了我的问题。谢谢
Architecture
Art
Fashion
Music
# Change this line with an =:
<%= @categories.each do |c| %>
# ...to this:
<% @categories.each do |c| %>
def self.all_categories
Attraction.select("DISTINCT category")
end
def self.all_categories
Attraction.select("DISTINCT category").map(&:category)
end