Tengo un problemilla con composed_of en Rails 2.0

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?

2008/6/5 Carlos Belizón [email protected]:

   @aforo = aforo

end
end

al parecer la clase estadio no hereda el < ActiveRecord::Base

saludos

Miguel Michelson wrote:

2008/6/5 Carlos Belizón [email protected]:

   @aforo = aforo

end
end

al parecer la clase estadio no hereda el < ActiveRecord::Base

saludos

Claro, no necesito mapear ninguna tabla llamada Estadios.

2008/6/5 Carlos Belizón [email protected]:

He solucionado el problema: En Rails 2.0 parece ser que la class_name ha
de ir entre comillas.

De cualquier forma no necesitas especificar class_name si desde el
nombre que le das (en tu caso “:estadio”), se puede inferir la clase
(Rails inferirá Estadio, que es la que tu quieres).

He solucionado el problema: En Rails 2.0 parece ser que la class_name ha
de ir entre comillas.