Je trouve que je devais faire un changement mineur à la solution de @ equivalent8 pour le faire fonctionner pour Rails 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
Sans la déclaration foreign_key
, Rails essaie de trouver les enfants par organisation_id au lieu de parent_id et de chokes. Rails aussi étouffe sans la déclaration :optional => true
sur l'association belongs_to car belongs_to nécessite une instance à assigner par défaut dans Rails 5. Dans ce cas, vous devrez assigner un nombre infini de parents.
Comment trouver les catégories enfants pour les parents spécifiques. – demonchand
Vous pouvez simplement utiliser parent.child? –
En fait, je trouve que mon esprit groks "has_one: parent, belongs_to:: children" un arrangement plus sensible pour la même chose. – slacy