Suis Rails version 3. Je veux créer un modèle, dans lequel j'ai un champ appelé "Page-visites" Je veux qu'il maintienne gamme comme valeur, par exemple: (50 .. 100), (1000 .. 5000) etc. Comment y parvenir? Même s'il n'y a pas de type de données à ce jour dans les rails, j'aimerais savoir d'autres façons d'y parvenir?Comment utiliser un type de données Range dans la création d'un modèle Rails?
Répondre
Je suggère modèle créer avec page_visits d'attribut qui contient quantité exacte de visites et de définir la méthode dans l'action, SMTH comme
def page_visit_range
#case when statement for self.page_visits or some smarter maths to return range
end
Je suppose que vous voulez vraiment stocker une gamme dans votre modèle et pas une valeur dans une plage. (Si vous vouliez faire le dernier, les validations seraient votre réponse).
Donc, gamme. Dans un modèle. Vous avez deux options, dont chacune est assez décente.
Option 1: Créez une colonne (range_column
) avec le type 'texte'. Passez un objet plage Ruby à la colonne, comme @my_model_object.range_column = (50..100)
. Dites-Rails de sérialisation votre gamme comme ceci:
class MyModel < ActiveRecord::Base
serialize :range_column
end
Maintenant, Rails vous permet de convertir automatiquement votre gamme de YAML pour le stockage de base de données, et le convertir à l'objet de la plage quand il récupère à nouveau l'enregistrement. Ne devient pas beaucoup plus facile que ça!
Option 2: Créez deux colonnes (range_start
et range_end
) avec le type 'entier'. Mettre en place quelque chose dans votre modèle comme celui-ci:
class MyModel < ActiveRecord::Base
def range=(rstart, rend)
self.range_start = rstart
self.range_end = rend
end
def range
(range_start..range_end) # or as an array, or however you want to return it
end
end
La première option est plus facile (et, à mon avis, mieux), tandis que le second vous donne un peu peu plus de flexibilité de la boîte si vous n » Je ne veux pas utiliser un objet de la gamme Ruby (mais pourquoi pas vous?).
- 1. Rails Dynamic Range Validations
- 2. Comment utiliser un modèle sans contrôleur dans Ruby on Rails?
- 3. Validation du modèle pour la création d'enregistrement dans des rails
- 4. Comment générer un modèle avec un champ de type enum?
- 5. Création de formulaires dans Rails
- 6. Comment utiliser edit_in_place dans l'affichage d'un modèle différent dans Rails?
- 7. Création d'un modèle AR pour la base de données Drupal
- 8. quel type de données utiliser quand je veux faire un peu de travail dans Rails?
- 9. quel type de données pour utiliser un temps dans gorm?
- 10. Rails: Création de sous-dossiers dans le modèle?
- 11. Comment utiliser paramétrer dans Rails?
- 12. Callback Rails - création: callback on_login pour un modèle utilisateur?
- 13. Quel type de données utiliser?
- 14. Modèle de délégué pour la base de données distante Rails?
- 15. Comment utiliser Double flex type de données?
- 16. Rails - Création d'un modèle de notifications pour les utilisateurs
- 17. Création de modèles lisibles dans les rails
- 18. Rails Problème lors de la création d'une instance de modèle avec une relation un à plusieurs
- 19. Comment utiliser Linq dans un modèle T4?
- 20. jquery datepicker, dates range range
- 21. RoR: Comment utiliser * _path dans un modèle?
- 22. Comment protéger un attribut de modèle Rails?
- 23. Rechercher dans la base de données MySQL fonction de la date Range fournie par l'utilisateur
- 24. Comment utiliser une URL pour créer un lien vers l'action de création dans Ruby on Rails?
- 25. Comment ajouter un champ dans un modèle Django dont le type de données est défini sur
- 26. Comment remplacer la "nouvelle" méthode pour un modèle de rails
- 27. ruby on rails: Comment accéder aux données variables dans un paramètre url transmis à un modèle?
- 28. Comment créer un formulaire dans Rails sans avoir à utiliser form_for et une instance de modèle?
- 29. Rails - Création d'enregistrements de modèle parent et imbriqué?
- 30. Comment implémenter un modèle Rails nommé "série"?
Dans le cas d'une sérialisation, devrions-nous/pourrions-nous utiliser 'serialize: range_column, Range' ou est-ce que je me méprends sur l'utilisation prévue de cet argument? – Ziggy