ao longo do curso do módulo 2 Na Flatiron School (Ruby on Rails), eu continuei vendo o.tente método sendo usado em exemplos (particularmente para autenticação de senha) e não tinha certeza do que o método estava fazendo. Parecia um pouco de magia Rails, como tudo o resto faz, e eu não tinha certeza de como usá — lo corretamente-então fiz algumas pesquisas, e na verdade é um método realmente útil.

Exemplo de código onde .tente seria útil na limpeza do Código

um lugar onde .try é realmente útil e muitas vezes usado está em um método de login//controlador de sessões. Aqui, na linha 18, o código é um pouco mais complexo do que o necessário. Primeiro, encontro o usuário pelo e-mail que ele colocou no formulário de login. Então, para autenticar a senha do Usuário, primeiro tenho que dizer se há um usuário (se @ usuário) e se a senha desse usuário está correta, faça login nesse usuário. É um pouco repetitivo, e um lugar onde .tente vem a calhar.

Código ligeiramente mais limpo usando .tente

o que o.try method faz (de acordo com a documentação) é que ele invoca o método chamado como o primeiro argumento em .tente, e chama isso no receptor, assim como qualquer outro método. Onde é útil é que se o receptor (aqui, @ user) não responder ao método, em vez de quebrar e gerar um erro, ele apenas retorna nulo. Então! Em um método de login, você pode ver onde isso seria útil. Se o usuário colocar o e-mail errado ou não tiver uma conta, ele não existirá no banco de dados e não será encontrado pelo Usuário.método find_by. Mas então a próxima linha não vai quebrar por causa disso, e não há um extra if e instrução no código.

Outro exemplo de utilização da .tente o método

Isso pode ser usado em um número de lugares para limpar o código e evitar erros, se um usuário não existir, ou se, no caso acima, um usuário foi excluído ou não a atividade em si foi eliminado e, portanto, não tem um proprietário. Este código (usando a gema de atividade pública para exibir uma linha do tempo da atividade do usuário) estava quebrando quando um usuário excluiu seu comentário, até que voltei para o código e adicionei o.tente o método.

é bastante simples de usar, embora não pareça fácil à primeira vista! Eu definitivamente vou continuar usando .tente no meu código Rails para limpar um pouco as coisas e evitar erros, e espero que este blog tenha ajudado a esclarecer isso para você também.