JavaFree.org | RubyOnBr.org

Método para alterar o texto do resultado de um boolean

Acompanhar Método para alterar o texto do resultado de um boolean 7 posts, 4 participantes

Avatar radwar 383 posts

Tchê, tenho um campo boolean então como posso definir um método para que ao mostrar o resultado do mesmo na view, não apareça ‘true’ ou ‘false’ e sim ‘sim’ e ‘não’?

Agradeço,

 
Logo128x128 Weldys Santos 40 posts

Cara basta colocar um helper na application_helper assim:

e lah na view vc chama o metodo assim

Assim ele mostra sim ou não ao invés do true ou false..

Qualquer coisa avisa pra gente…

 
Avatar radwar 383 posts

Weldys, era exatamente isso que eu precisava, funcionou beleza :)
obrigado pela dica!

 
Logo128x128 Weldys Santos 40 posts

Tamo aê pra ajudar e ser ajudado mesmo… :)

 
10201543577576e12-vitorpamplona Vitor Fernan... 18 posts

Ham… isso é o melhor meio de fazer isso?

Não dá para sobrecarregar uma função na qual sempre que a view tentar imprimir um valor boleano, troca-se por “Sim” ou “Não” ?

 
Avatar Ronie Uliana 891 posts

Dá pra fazer isso aqui:

Mas não sei se o Rails não usa o “to_s” dos booleans pra alguma outra coisa, pode causar conflito.

Outro jeito é sobrescrever o método “h” que é usando pra evitar ataques XSS e deveria ser usado no output de qualquer jeito. Aí ficaria muito parecido com o que o Weldys mostrou, mas com o nome do método chamado “h”

Uma terceira maneira seria usar um engine alternativo como o HAML ou o Erubis que fazem algum processamento com os dados embutidos (normalmente pra evitar ataques XSS) e sobrescrever os métodos que eles usam pra isso.

Só não sei se alguma dessas soluções vale o esforço :)

 
10201543577576e12-vitorpamplona Vitor Fernan... 18 posts

Hum… o TrueClass e o FalseClass podem ser adicionadas ao Brazilian Rails e seus métodos trocados para to_s_br, assim como já é o Date lá.

Acho que ficaria legal :)