Estaba leyendo acerca de self-referential has_many: a través de situaciones de datos de hoy, porque estoy tratando de construir una aplicación Rails que los use. Encontré este example situation en Internet, y tengo una pregunta al respecto. Me deja publicar este código de ejemplo del blog de este tipo:Problema con self-referential has_many: a través de asociaciones en Rails
create_table :animals do |t|
t.string :species
end
create_table :hunts do |t|
t.integer :predator_id
t.integer :prey_id
t.integer :capture_percent
end
class Animal < ActiveRecord::Base
has_many :pursuits, :foreign_key => 'predator_id',
:class_name => 'Hunt',
:dependent => :destroy
has_many :preys, :through => :pursuits
has_many :escapes, :foreign_key => 'prey_id',
:class_name => 'Hunt',
:dependent => :destroy
has_many :predators, :through => :escapes
end
class Hunt < ActiveRecord::Base
belongs_to :predator, :class_name => "Animal"
belongs_to :prey, :class_name => "Animal"
end
Digamos que estoy construyendo una página web que muestra el primer animal en su base de datos. Debajo de este encabezado hay una lista de porcentajes (capture_percent). Cada porcentaje se refiere a un animal que los animales de esta página buscan, pero no le dice el nombre del animal, solo el porcentaje. Al hacer clic en cualquier porcentaje, te llevará a la página del animal correspondiente.
Esta es una pregunta difícil de entender, lo sé, pero estoy tratando de resolverlo. ¿Tendría que crear una tabla separada para CapturePercent, tal vez?