tutorial rails que ejemplos curso aprender ruby-on-rails ruby ruby-on-rails-3

ruby-on-rails - que - ruby on rails tutorial



Ruby/Rails-.ete iterator está imprimiendo una matriz completa al final del ciclo (2)

Es porque es lo que sucede cuando lo haces

def self.all_categories Attraction.select("DISTINCT category") end

Es crear un objeto de atracción con un atributo definido por su campo. Tu puedes hacer

def self.all_categories Attraction.select("DISTINCT category").map(&:category) end

Creo que lo que estoy tratando de hacer es bastante simple, y realmente no estoy seguro de por qué esto no está funcionando. Estoy usando Rails 3.

Esencialmente, estoy tratando de seleccionar los valores distintos de una columna en un modelo existente, e imprimirlos todos. En su mayor parte, esto funciona, pero el .each loop en mi vista también termina imprimiendo todo el conjunto al final del ciclo. (

Soy un modelo llamado Atracciones, y cada atracción tiene una Categoría (ahora la Categoría está codificada en la BD por simplicidad).

Este es el Modelo de atracción y un método de clase "all_categories" definido ...

class Attraction < ActiveRecord::Base def self.all_categories Attraction.select("DISTINCT category") end end

Este es el controlador de la atracción

class AttractionsController < ApplicationController def index @categories = Attraction.all_categories @attractions = Attraction.find(:all) end def show @attraction = Attraction.find(params[:id]) end end

Este es el código en mi opinión que está causando problemas, no hay ciencia espacial, solo un iterador simple, ...

<%= @categories.each do |c| %> <%= c.category %><br/> <% end %>

Bastante simple, ¿verdad? Todo esto funciona bien, PERO esto es lo que veo cuando se ejecuta ese segmento de código:

Architecture Art Fashion Music [#<Attraction category: "Architecture">, #<Attraction category: "Art">, #<Attraction category: "Fashion">, #<Attraction category: "Music">]

¿Por qué se imprime la matriz al final? Todo lo que quiero es una lista de las categorías:

Architecture Art Fashion Music

Obviamente, soy nuevo en Ruby / Rails, y he intentado buscar una solución para esto. ¿Hay algo obvio que me estoy perdiendo?

Aprecia cualquier ayuda.


# Change this line with an =: <%= @categories.each do |c| %> # ...to this: <% @categories.each do |c| %>

Solo desea los efectos secundarios en el bloque del #each método, no desea la interpolación del valor devuelto.