Estoy trabajando con una composición en Rails y ya me ha surgido el
primer problema:
En el archivo estadio.rb:
class Estadio
attr_reader :nombre, :aforo
def initialize(nombre, aforo)
@nombre = nombre
@aforo = aforo
end
end
Luego cree un scaffold para el modelo club
Tengo la siguiente clase en el archivo club.rb:
class Club < ActiveRecord::Base
composed_of :estadio,
:class_name => Estadio,
:mapping =>
[ # database ruby
[:nombre_estadio, :nombre],
[ :aforo, :aforo]
]
has_many :jugadores
validates_presence_of :nombre, :nombre_estadio, :aforo
validates_numericality_of :aforo
def validate
errors.add(:aforo, "El aforo ha de ser mayor que 0") if aforo <
1
end
end
Me dispuse a modificar las vistas, empezando por index.html.erb,
transformándola en haml y tengo esto:
%h1 Listado de Clubs
%table
%tr
%th Nombre del Club
%th Nombre del Estadio
%th Aforo
- for club in @clubs
%tr
%td= h club.nombre
%td= h club.estadio.nombre
%td= h club.estadio.aforo
%td= link_to ‘Mostrar’, club
%td= link_to ‘Editar’, edit_club_path(club)
%td= link_to ‘Destruir’, club, :confirm => ‘¿Estás seguro?’,
:method => :delete
%br
= link_to ‘Nuevo Club’, new_club_path
Pues bueno, cuando introduzco un nuevo club (con la vista aún en erb) y
me redirige a index me muestra el siguiente error:
Showing clubs/index.haml where line #12 raised:
undefined method `constantize’ for Estadio:Class
Extracted source (around line #12):
9: - for club in @clubs
10: %tr
11: %td= h club.nombre
12: %td= h club.estadio.nombre
13: %td= h club.estadio.aforo
14: %td= link_to ‘Mostrar’, club
15: %td= link_to ‘Editar’, edit_club_path(club)
¿Alguien me echa una mano? ¿Qué estoy haciendo mal?