J'ai un trop grand nombre de modèles et je souhaite créer des fichiers de relations de validation et distincts pour chaque modèle dans les rails. Est-il possible de le maintenir avec des rails? Un avantage spécifique à le faire?Fichier de validation séparé pour chaque modèle dans les rails
Répondre
Votre question n'est pas claire. Par "modèles", vous voulez dire des modèles soutenus par une base de données qui utilisent ActiveRecord, n'est-ce pas?
Habituellement, la validation n'est pas un "fichier", mais une série d'instructions dans le fichier du modèle. Idem pour les déclarations de relation.
Vous pouvez diviser le contenu d'un modèle entre n'importe quel nombre de fichiers. La technique varie selon que vous souhaitez que les autres fichiers contiennent des méthodes d'instance ou des méthodes de classe.
Le plus simple est d'avoir des méthodes d'instance dans d'autres fichiers. Par exemple,
# file foo.rb
class Foo < ActiveRecord::Base
include FooMethods
# --- callbacks --- #
before_create :record_signup # "before_create" is a "callback".
# See http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
# note that the method could also be from a different class altogether:
before_save EncryptionWrapper.new
# See section "Types of callbacks" in the api url referred to above
# --- relationships --- #
belongs_to :foobar
has_many :bars
# --- Class Methods --- #
def Foo.a_method_name(id)
...
end
end
~~~~~~~~~~~~~~~~~~~~~~~~~~~
# file foo_methods.rb
module FooMethods
def method1
...
end
def method2
...
end
private
def record_signup # define the callback method
self.signed_up_on = Date.today
end
end
Spontanément, je ne sais pas comment mettre la commande prioritaire de rappel
de before_create
dans un autre fichier que principal fichier de classe du modèle. Ce ne serait pas difficile à comprendre. Mais peu importe qu'il soit facile de mettre dans un fichier différent, je ne le recommanderais pas du point de vue de la clarté du code.
- 1. Fichier de configuration séparé pour les fournisseurs
- 2. Validation des relations de modèle dans les rails
- 3. Validation du modèle Rails - validates_inclusion_of
- 4. Validation du modèle pour la création d'enregistrement dans des rails
- 5. validation de validation de modèle de rails et commande
- 6. Nom de l'enregistreur séparé pour chaque instance d'application
- 7. validation d'entrée en double dans le modèle de rails
- 8. Remplissage du modèle de vue MVC de la classe de validation dans un projet séparé
- 9. Méthode DRY d'appel d'une méthode dans chaque modèle de rails
- 10. Validation du modèle Rails avec des fichiers
- 11. validation de formulaire javascript dans les rails?
- 12. Rails: Conserver toutes les lignes ActiveRecord "validates" dans un fichier séparé?
- 13. Journalisation SQL spécifique au modèle dans les rails
- 14. Les rails montrent la vue d'un modèle avec un formulaire pour l'ajout d'un enfant - attributs imbriqués vs contrôleur séparé vs?
- 15. environnement Rails de validation spécifique
- 16. Validation de formulaire Rails
- 17. Est-il possible de définir le contenu de chaque onglet dans un fichier XML séparé?
- 18. URL par défaut pour un modèle dans les rails?
- 19. aide pour configurer le serveur MySQL séparé pour rails
- 20. Utiliser antlr pour analyser a | fichier séparé
- 21. rubis sur des rails Modèle de validation avec des tableaux
- 22. séparé datable pour chaque ligne en db. .NEt
- 23. Insérer un modèle dans chaque fichier source d'un projet Eclipse?
- 24. messages de validation de rails
- 25. Validation multi-états dans Rails
- 26. Modèle récursif dans Rails
- 27. Créer un délégué pour iPhone (dans un fichier séparé)
- 28. Ruby on Rails: Model.all.each vs find_by_sql ("SELECT * FROM modèle"). Chaque?
- 29. Rails - Création d'un modèle de notifications pour les utilisateurs
- 30. Définir les attributs persistants du modèle Rails dans le fichier modèle
Merci larry pour la réponse rapide .. Puis-je ajouter des méthodes before_validation, after_save, after_create dans le module? et est-ce le travail si j'ai simplement inclure ce module dans ma classe ?? car cela fonctionne comme des choses qui travaillent ensemble dans une classe. –
# fichier foo.rb classe Foo
@krunal, votre commentaire est entouré de lignes et illisible. Je suggère que vous l'ajoutiez à votre q d'origine précédé par "Ajouté" ou un tel. En outre, n'oubliez pas d'upvote réponses qui sont utiles et marquer comme "répondu" celui qui résout votre problème. Re: Chargement: aucune différence importante si avoir plusieurs fichiers source est d'une aide réelle pour vous. Re: before_validation etc, voir la mise à jour –