me di cuenta que tenía que hacer un pequeño cambio en la solución de @ equivalent8 para hacer que funcione para los carriles 5 (5.1.4):
class Category < ActiveRecord::Base
has_many :children, :class_name => "Category", foreign_key: 'parent_id'
belongs_to :parent, :class_name => "Category", foreign_key: 'parent_id', :optional => true
end
Sin la declaración foreign_key
, Rails intenta encontrar a los niños mediante organization_id en lugar de parent_id y chokes.
Rails también se bloquea sin la declaración :optional => true
en la asociación belongs_to ya que belongs_to requiere que se asigne por defecto una instancia en Rails 5. En este caso, debería asignar un número infinito de padres.
¿Cómo encontramos las categorías secundarias para los padres específicos? – demonchand
Puedes simplemente usar parent.child? –
Encuentro que mi mente piensa "has_one: parent; belongs_to:: children", una disposición más sensata para la misma cosa. – slacy