Essa é bem simples, coisa básica, mas que uso sempre.
Praticamente todas aplicações tem tabelas em que uma das colunas é usada para setar o status/situação do registro, eu costumo gerar esses campos através de migrates assim: status:boolean, na hora de exibir esse registro ao usuário precisamos tratá-lo, pois mostrar true ou false convenhamos que não é legal.
Seguindo o principio de DRY do rails a solução é bem simples.
No application_helper.rb coloco a seguinte função:
Na view basta usar assim:
A explicação é bem simples, a função ativo_inativo recebe um parâmetro true ou false e através de um operador ternário devolve Ativo ou Inativo, lembre-se a função agora está disponivel para toda a aplicação, sem repetições.
Abraço!


2 Comments
É uma excelente dica.
Não seria bom se pudéssemos especificar direto no modelo que string retornar para cada true/false de cada um desses “boolean flags” que normalmente usamos? Adicionaríamos um método “to_s”… então usaríamos algo como
Digo no modelo por que esses valores variam de atributo para atributo, como “ativo/inativo”, “completo/incompleto”, “revisado/não revisado”… e por aí vai.
Ainda com o i18n poderíamos tornar essas “stringificações” multilinguais… fala sério!?!
Abraço!
Parece que o campo de comentário não aceita código Ruby… cortou minha mensagem bem no “… então usaríamos algo como “cadastro(ponto)status(ponto)to_s”.