diff --git a/README.md b/README.md index 68a22d8..4993696 100644 --- a/README.md +++ b/README.md @@ -25,3 +25,43 @@ $ rails g Model ModelNameLang name:string @admin_space = "exemple" end ``` + + +## Erreurs courantes + +### undefined method `qi_table_order' for # + +La méthode acts_as_sorting n'est pas définie dans le modèle + +## Système de cache + +Le système est avant tout une convention, pour le naming des champs et des méthodes. + +Exemple, on veut stocker en cache le prix (price) dans le modèle PCustomer. + +```ruby +class Pcustomer + [...] + acts_as_caching fields: [:price] +end + +``` +on crée les champs cc_price et ac_price dans la table p_customers +cc = cache +ac = archive + +Par convention, à chaque enregistrement le champ cc_price sera enregistré avec la valeur de la méthode ca_price (ca = calcul) sauf si le champ ac_price est rempli, dans ce cas ce sera cette valeure qui sera enregistrée dans le champ cc également. + +Dans le cas du prix, la méthode "ca_price" ira par exemple chercher le prix actuel dans la table membership. + +Si on veut donner la main pour indiquer un prix manuellement, qui vient écraser le prix calculer, on créera par convention le champ ct_price (ct = custom) et on commencera la méthode ca_price par un : + +```ruby +def ca_price + return self.ct_price if self.ct_price? + + methode de calcul +end +``` + +Toutes ces étapes permettent d'appeler la méthode price sans se soucier des calculs de cache dans le modèle.