J'adore utiliser le? pour les champs booléens, par exemple, pour la table 'animaux' "vivant?" est très évident. Où puis-je définir ceci? Dois-je nommer le champ db lors de la création de la migration de la table (ne le pensez pas). Ou est-ce automatique pour les champs booléens ou ai-je une petite méthode dans la classe du modèle d'enregistrement actif pour les animaux qui dit quelque chose comme def vivant? si vivant alors vrai sinon faux fin?Ruby, utilisation de '?' - DB ou méthode de modèle?
1
A
Répondre
6
Rails génère automatiquement une méthode se terminant par ?
pour chacun des champs d'un modèle. Quelques exemples:
Animal #=> Animal(id: integer, alive: boolean, name: string)
a = Animal.new
a.alive #=> nil
a.alive? #=> false
a.alive = true
a.alive? #=> true
a.name #=> nil
a.name? #=> false
a.name = "Giraffe"
a.name? #=> true
Notez également que vous pouvez facilement définir vos propres méthodes ?
:
class Animal
def young?
created_at > 1.day.ago
end
end
1
Ce comportement est automatique pour tous les champs booléens dans ActiveRecord.
Comme une finesse, j'aime nommer les champs booléens avec un préfixe is_
. is_alive
, ce qui vous donne is_alive?
.
Questions connexes
- 1. Ruby: Utilisation de la méthode "index" avec "OU"
- 2. Utilisation de l'ID généré par séquence ou d'une autre méthode pour interroger le DB
- 3. Utilisation de la méthode DateTime dans ruby
- 4. utilisation iframe ou modèle
- 5. Utilisation de whois ruby
- 6. Ruby: modèle de proxy, réduction des appels de méthode
- 7. Utilisation de [self method] ou @selector (méthode)?
- 8. Modèle d'usine ou de service ou injection de méthode?
- 9. Utilisation! sur une méthode en Ruby
- 10. Rails: Méthode d'instance de modèle ou méthode auxiliaire?
- 11. Utilisation de gemmes avec Ruby On Rails: méthode non définie?
- 12. Ruby NameError variable locale ou méthode `e
- 13. ZF2 utilisation ou dans le modèle
- 14. Qu'est-ce que c'est? Méthode de modèle ou quoi?
- 15. décision de programmation Java ou .Net, db ou pas db
- 16. macruby: Utilisation de la méthode ruby comme AXObserverCallback
- 17. Utilisation du modèle Observer: méthode update()
- 18. Utilisation de chacun dans Ruby
- 19. Ruby ajouter db
- 20. Utilisation du modèle de méthode d'usine en C++
- 21. Utilisation de la Prenez méthode sur mon modèle Substitut variable
- 22. Méthode Ruby Class ou Constante, meilleure pratique
- 23. Utilisation de la classe de modèle avec la méthode de modèle en C++
- 24. Ruby DB Erreur de migration 'rake db: migrate'
- 25. Méthode de retour Ruby
- 26. Méthode de l'indexeur Ruby
- 27. Interception de méthode Ruby
- 28. Ruby: variable locale non définie ou méthode de travail autour
- 29. idiome Ruby: appel de méthode ou par défaut
- 30. Utilisation de la composition en ruby
des normes agréables mais personnelles lors du partage de code sont un cauchemar pour tous à utiliser et à entretenir. –
Emprunté directement à Ruby and Rails lui-même. 'is_a?', 'is_missing?', 'is_eos?', etc. –
oui ils sont juste comme la méthode de ruby nommage qui est super. Ils suivent les mêmes normes et le même format, ce qui est également génial. Je crois toujours cependant que: les normes personnelles lors du partage de code sont un cauchemar pour tout le monde à utiliser et à maintenir. S'il vous plaît méditer :) Si vous pouvez les obtenir dans le noyau de rubis pas de problème. –