Suite
This commit is contained in:
parent
24b9e641f5
commit
a994a5fa9b
40
README.md
40
README.md
@ -25,3 +25,43 @@ $ rails g Model ModelNameLang name:string
|
|||||||
@admin_space = "exemple"
|
@admin_space = "exemple"
|
||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Erreurs courantes
|
||||||
|
|
||||||
|
### undefined method `qi_table_order' for #<Class:0x00007f0278093f40>
|
||||||
|
|
||||||
|
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.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user