
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?