Existe-t-il un moyen de créer une colonne de numéro de série (SNO) via un échafaudage dans Rails qui augmente lors de l'ajout d'un enregistrement, diminue lors de la suppression d'un enregistrement et ne peut pas être modifié manuellement?Ajout d'une colonne SNO auto-incrémentée dans Rails Scaffolding?
0
A
Répondre
0
Si vous voulez créer une colonne de résumé sur un modèle, vous devrez mettre cette logique dans vos modèles. Il n'y a pas construit en méthode pour cela (comme un champ standard autoincrement), mais il peut être facilement ajouté:
class Parent << ActiveRecord::Base
# Contains a field: summary_field
end
class Child << ActiveRecord::Base
after_save => :increment_summary
before_destroy => :decrement_summary
def increment_summary
Parent.find(self.id).summary_field.increment
end
def decrement_summary
Parent.find(self.id).summary_field.decrement
end
end
1
On ne sait pas s'il y a une relation en cause, mais il semble que counter_cache peut être un bon en forme. Un Railscast episode fournit les exemples de code et un didacticiel vidéo.
Qu'est-ce qu'une colonne SNO? –
Colonne du numéro de série – Arc