MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Quais são as boas maneiras de obter detalhes atuais do usuário em modelos?


O controle de acesso em trilhos é feito no nível do controlador, não no nível do modelo. Como resultado, o Rails não fornece nenhum mecanismo para acessar o usuário atual, cookies, etc., de dentro do código do modelo. Você pode transportar os dados para o modelo por parâmetros para métodos, se desejar. No entanto, isso seria ignorar as decisões de design de alguns dos melhores programadores da indústria, então acho que provavelmente não é uma boa escolha.

Em outras palavras, não faça o que você está tentando fazer. Coloque o conhecimento de como fazer as coisas em seu modelo, mas coloque controles em torno de quem pode fazê-los no controlador.

Por outro lado, se você estiver tentando armazenar o usuário atual por algum motivo, deverá fazer isso por algum tipo de associação (ou documento aninhado, já que está usando o mongo). Nesse caso, não use current_user dentro do modelo, mas faça um attr_accessor no usuário, defina o usuário na instância do seu modelo para o current_user no controlador e salve-o como você precisa em seu retorno de chamada.