Question

J'ai un modèle d'activité. Il belongs_to :parent, :polymorphic => true.

ne Rails utiliser parent.class.name, parent.model_name ou quelque chose d'autre pour remplir le champ de PARENT_TYPE?

Je veux un présentateur à se comporter comme l'objet parent, il enveloppe, et je dois passer outre la bonne méthode.

Merci.

Était-ce utile?

La solution

Je travaille avec Rails 3.0.7 en ce moment et le type polymorphique est défini dans active_record-3.0.7/lib/active_record/association.rb, ligne 1773.

def create_belongs_to_reflection(association_id, options)
  options.assert_valid_keys(valid_keys_for_belongs_to_association)
  reflection = create_reflection(:belongs_to, association_id, options, self)

  if options[:polymorphic]
    reflection.options[:foreign_type] ||= reflection.class_name.underscore + "_type"
  end

  reflection
end

Alors, on dirait qu'il appelle class_name.underscore et annexant « _type ». Cela peut être légèrement différent pour rails 3.1, mais cela devrait être un bon point de départ.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top