MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Quels sont les bons moyens d'obtenir les détails de l'utilisateur actuel dans les modèles ?

Le contrôle d'accès dans les rails se fait au niveau du contrôleur, pas au niveau du modèle. Par conséquent, rails ne fournit aucun mécanisme pour accéder à l'utilisateur actuel, aux cookies, etc., à partir du code du modèle. Vous pouvez transférer les données dans le modèle par des paramètres vers des méthodes, si vous le souhaitez. Cependant, ce serait ignorer les décisions de conception de certains des meilleurs programmeurs de l'industrie, donc je pense que ce n'est probablement pas un bon choix.

En d'autres termes, ne faites pas ce que vous essayez de faire. Mettez les connaissances sur la façon de faire les choses dans votre modèle, mais mettez des contrôles sur qui peut les faire dans le contrôleur.

D'un autre côté, si vous essayez de stocker l'utilisateur actuel pour une raison quelconque, vous devez le faire par une sorte d'association (ou de document imbriqué, puisque vous utilisez mongo). Dans ce cas, n'utilisez pas current_user à l'intérieur du modèle, mais faites plutôt un attr_accessor sur l'utilisateur, définissez l'utilisateur sur l'instance de votre modèle sur current_user dans le contrôleur, puis enregistrez-le comme vous le souhaitez dans votre rappel.