Carlos Brando

Nome do Jogo

Dica rápida: Pra que complicar?

214723509_3758c2c179.jpg

Eu tenho um Array com nomes de pessoas e quero exibi-lo em minha view em uma sentença, mais ou menos assim: "Carlos, Thiago e Tatiane".

Pensando rápido a solução mais prática seria verificar quantos itens eu tenho no array e depois fazer um loop por todos os itens, escrevendo o nome na página e separando por vírgulas, com exceção do último item que receberia a letra "e" no lugar da vírgula. Muito simples, mas eu nem quis escrever o código aqui por pura preguiça. Mas se você já programa em qualquer linguagem a um tempinho, com certeza já fez algo parecido, então sabe do que estou falando.

Porém quando o assunto é Rails, exatamente pelo fato de um código assim ser rotineiro, basta procurar que com certeza encontraremos algo pronto.

Veja por exemplo o que o método to_sentence faz:

>> a = %w(Carlos Thiago Tatiane)
=> ["Carlos", "Thiago", "Tatiane"]

>> a.to_sentence(:skip_last_comma => true)
=> "Carlos, Thiago and Tatiane"

Ótimo, é quase o que queremos, mas a palavra "and" não vai ficar legal no meu sistema que é em português… Mas podemos alterar:

>> a.to_sentence(:skip_last_comma => true, :connector => 'e')
=> "Carlos, Thiago e Tatiane"

Gostou? Já conhecia este método?

Comments