Edge Rails: Array#to_sentence

7 de janeiro de 2009  |  Rails 2.3  | 

Atualmente o método Array#to_sentence possui as opções :connector que permite configurar a palavra usada para ligar os dois últimos elementos da lista, normalmente a palavra “and” ou a letra “e” em português e :skip_last_comma que como diz o nome remove a última virgula da frase.

À partir do Rails 2.3 este método não terá mais as opções acima, que serão substituídas pelas seguintes:

:words_connector
O símbolo ou palavra que será usado para ligar os elementos na frase, somente quando o Array tem mais de dois elementos. O valor padrão é “, “.

:two_words_connector
Esta opção funciona como a de cima, mas somente quando o Array possuir apenas dois elementos. O valor padrão é ” and “.

:last_word_connector
Esta opção define o símbolo ou palavra que ligará os dois últimos elementos do Array na frase. O valor padrão é “, and “.

A opção :locale que já existe hoje continuará existindo normalmente. Um exemplo de uso do novo método para conseguir uma frase em português seria:

>> ['Cachorro', 'Gato', 'Camelo'].to_sentence :last_word_connector => " e "
=> "Cachorro, Gato e Camelo"

Você também deve configurar o seu arquivo de internacionalização para o novo formato:

pt-BR:
  support:
    array:
      words_connector: ", "
      two_words_connector: " e "
      last_word_connector: " e "

Esta decisão foi tomada para facilitar o processo de internacionalização do Rails em algumas línguas.


Todos os exemplos dados aqui funcionarão somente no Ruby on Rails 2.3/3.0 ou superior. Você pode encontrar mais detalhes sobre esta e outras novidades acompanhando a série Edge Rails.



2 Comentários


  1. Angelo Albiero Neto

    Carlos,

    Voce conhece um metodo similar para hashes??

    Att.

  2. Não existe Angelo, mas você pode transformar seu Hash em um array e usar este método.

Deixe um comentário