J'essaye de construire un CMS en utilisant ERB. Est-il possible de donner un code ERB en lecture seule à vos modèles? Par exemple, je veux pouvoir charger n'importe quelle information sur mes modèles (Model.all, Model.find_by_slug, Model.find_by_name, Model.other_model.name, etc ...), mais je ne veux pas pouvoir changer ces données. Pouvez-vous désactiver ERB d'exécuter des commandes qui feraient des changements de base de données (Model.save, Model.update, Model.delete, Model.destroy, etc.) ???Restreindre l'accès dans le code ERB
2
A
Répondre
0
1
Donnez ce un coup: http://www.liquidmarkup.org/
0
Essayez d'utiliser: flag readonly tandis que les modèles de recherche:
@posts = Post.find(:all, :readonly => true)
Si vous allez essayer de le sauver - jetteront exception ReadOnlyRecord. Mais je suggère également Liquid comme un modèle, puisque l'utilisateur n'a pas un accès restreint aux variables d'application à l'intérieur des modèles ERB.
Probablement pas. Une solution souvent utilisée pour cela est d'utiliser un langage de template dédié comme ** liquide **. –
Pourquoi essayez-vous de faire cela? Il pourrait y avoir une meilleure façon d'accomplir votre objectif. – concept47
J'ai essayé du liquide et je pensais que ça allait marcher pour moi, mais je ne pouvais pas comprendre comment passer des arguments à mes méthodes liquides. – LGFaler