Dans les rails est-il possible de faire une fonction qui chaque fois qu'un attribut particulier est modifié, rails exécute une fonction. Dans mon cas, chaque fois que object.address (j'ai geocoded_by: address et after_validation: geocode) est changé, je veux faire object.geocode. Je suis sur des rails 3Rails attribut geocoder
Répondre
La meilleure solution, je pense, serait d'inclure ActiveModel :: sale dans votre modèle, vous pouvez le vérifier dans un rappel
class MyModel < ActiveRecord::Base
def after_save
if address_changed? do
#some stuff..
end
end
end
voir ActiveModel::Dirty
Pour moi la solution la plus élégante consiste à utiliser une validation conditionnelle selon que l'attribut à géocoded_by (adresse) a changé ou non. Vous pouvez faire quelque chose comme ça dans le « after_validation » rappel du modèle que vous géocodage, ou placez-le dans tout rappel Active Record correspond à votre objectif:
after_validation :geocode, :if => lambda{ |obj| obj.address_changed?}
Il suffit de passer le terrain pour vérifier malpropreté en vous after_validation comme dans
after_validation :geocode, :if => :address_changed?
Que faire si je veux vérifier si l'un des deux attributs a changé? – bcackerman
Il suffit de faire pointer le symbole vers une méthode où vous faites le contrôle – BSB
- 1. Rails Geocoder Fonction
- 2. rails 3 geocoder multiforme
- 3. Geocoder Gem - Ruby On Rails
- 4. Rails - Geocoder Gem: geocoded_by avec 2 tables
- 5. Puis-je nommer un attribut "attribut" rails?
- 6. Rails 3: Attribut inconnu
- 7. Google Maps V3 Geolocation Rails 3 adresses 'geocoder' incorrectes
- 8. Geocoder Gem - Ruby On Rails - Clé Étrangère (belongs_to)
- 9. Rails - Geocoder et aide de Google Maps nécessaires
- 10. Geocoder + Rails 3.2 // SQLException: aucune colonne de ce type: distance:
- 11. Google Geocoder Asynchronous Issue
- 12. Geocoder - GC_CONCURRENT FREED
- 13. google geocoder service
- 14. MKReverse Geocoder - Response Language
- 15. Geocoder java gwt
- 16. Geocoder Gem Reverse Géocodage
- 17. requête Mongoid utilisant Geocoder
- 18. Rails - attribut est pas enregistré
- 19. Rails 3 attribut form sérialisé
- 20. overrding attribut fonction rails mongoid
- 21. Rails attribut de marque requis (*)
- 22. google map v3 KmlLayer, Geocoder
- 23. javascript google maps geocoder initialiser
- 24. Android mapquest geocoder pays-setting
- 25. Ruby Geocoder plusieurs géocodeurs inverses
- 26. Classe 'Geocoder \ HttpAdapter \ BuzzHttpAdapter' introuvable
- 27. en utilisant geocoder avec myLocationOverlay
- 28. Le constructeur Geocoder() est indéfini
- 29. Google Geocoder et jQuery Différé
- 30. Impossible d'obtenir l'adresse de Geocoder
Que faire si je veux vérifier si l'un des deux attributs a changé? – bcackerman