Flux RSS
fév 13

Convertir un Array en Hash en Ruby (pour le select de formtastic)

Posté Dimanche 13 février 2011 dans Formtastic, Snippets

Voici un petit snippet en Ruby permettant de transformer un Array sous la forme :

  COUNTRIES = [
    "Kingdom of Morocco",
    "People's Democratic Republic of Algeria",
    "Great Socialist People's Libyan Arab Jamahiriya",
    "Kingdom of Saudi Arabia",
    "Hashemite Kingdom of Jordan",
    'Syrian Arab Republic',
    "United Arab Emirates",
    "Republic of Yemen",
    "Islamic Republic of Iran"
  ]

En Hash sous la forme :

{
 "Kingdom of Morocco"=>0,
 "People's Democratic Republic of Algeria"=>1,
 "Great Socialist People's Libyan Arab Jamahiriya"=>2,
 "Kingdom of Saudi Arabia"=>3,
 "Hashemite Kingdom of Jordan"=>4,
 "Syrian Arab Republic"=>5,
 "United Arab Emirates"=>6,
 "Republic of Yemen"=>7,
 "Islamic Republic of Iran"=>8
}

Voici donc le Snippet

  def self.countries_with_ids
    Hash[*COUNTRIES.collect { |c|
        [c, COUNTRIES.index(c)]
    }.flatten]
  end

Particulièrement efficace avec les input select de formtastic

WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera