Asociación has belongs to many

Hola, estoy relacionando dos modelos para crear una relación has and
belongs to many:

Documento.rb
class Documento < ActiveRecord::Base
has_and_belongs_to_many :etiquetas
end

Etiqueta.rb
class Etiqueta < ActiveRecord::Base
has_and_belongs_to_many :documentos
end

Y la tabla intermedia tal como dice las reglas debe ser por orden
alfabético y me crea documentos_etiquetas:
DocumentosEtiqueta.rb
class DocumentosEtiqueta < ActiveRecord::Base
belongs_to :documento
belongs_to :etiqueta
end

Cuando voy a borrar un documento:
doc=Documento.find(params[:id])
doc.destroy

me salta un error buscando Documento::Etiqueta

uninitialized constant Documento::Etiqueta

|RAILS_ROOT: /home/sonoratec/public_html/sonoratec.net/subdomains/ivaj|

http://ccaa-juventud.eu/admin/documentos/delete#
/usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:478:in
`const_missing’

|/usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/base.rb:1750:in compute_type' /usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/reflection.rb:125:in send’
/usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/reflection.rb:125:in
klass' /usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/associations/has_and_belongs_to_many_association.rb:132:in construct_sql’
/usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/associations/has_and_belongs_to_many_association.rb:6:in
initialize' /usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/associations.rb:1032:in new’
/usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/associations.rb:1032:in
etiquetas' (eval):3:in destroy_without_callbacks’
app/controllers/documentos_controller.rb:152:in delete' app/controllers/documentos_controller.rb:148:in each’
app/controllers/documentos_controller.rb:148:in delete' /usr/bin/mongrel_rails:19:in load’
/usr/bin/mongrel_rails:19|

Otras veces he usado el has_many y la opción trought, pero esta vez lo
he hecho con has belongs porque la tabla intermedia no tiene atributos,
estoy creándolo mal?

¿Tienes un rails muy antiguo? Porque eso parece ser este error de rails
1.0:
http://dev.rubyonrails.org/ticket/3175

Pero del rails 1.0 ya ha llovido…

Fernando C. escribió:

¿Tienes un rails muy antiguo? Porque eso parece ser este error de rails
1.0:
http://dev.rubyonrails.org/ticket/3175

Pero del rails 1.0 ya ha llovido…

Pues estoy usando la 2.0

http://www.linuxsc.net/index.php/the-prog/48-the-prog/65-como-aplic-ror-con-checkboxs-para-una-relacion-nn

Tengo un docto hecho para ese tipo de relaciones…

revisalo y si te sirve adelante

Hola Miguel Ángel, para una relación muchos a muchos necesitas una tabla
intermedia pero no un modelo para esta relación intermedia, a menos que
necesites almacenar atributos en la propia relación.

Esto es, te basta con tus modelos Documento.rb y Etiqueta.rb tal como
los
tienes pero te sobra el modelo DocumentosEtiqueta.rb.

A nivel de base de datos tendrás tres tablas: documentos, etiquetas, y
documentos_etiquetas. Pero esta última tabla no necesita corresponderse
con
un modelo, es una tabla intermedia.

Mis dos centauros.
Jaime

2008/6/2 Miguel Angel Calleja Lázaro [email protected]: