Développeur Web RoR

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 29 septembre 2011

Number to human : chiffre en lettre en ruby avec rubyonrails

Bon voilà dans rubyonrails, il y a un helper : number_to_human, qui est bien intéressant :

http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_to_human

Il utilise locale pour la langue (français, anglais, ...), donc avec un petit script on peut faire une conversion de nombre en français en ruby :

chiffre="2235516516516"
caption = []
i = 0
chiffre.each_char do |c|
  mavar = ActionView::Base.new.number_to_human(chiffre[i..chiffre.length].to_i,
  :precision => 6,
  :significant => false,
  :locale => :fr)
  mavar = mavar.pluralize if c.to_i > 1
  caption << mavar.gsub(/,(\d+)/, "")
  i += mavar[/(\d+)/].length
  break if i >= chiffre.length
end
caption.join(" ")

vendredi 17 septembre 2010

Rails3 : Comment utiliser les helpers AJAX de rails2 avec jquery

Il faut réinstaller les helpers :

rails plugin install git://github.com/rails/prototype_legacy_helper

Installer jrails qui surcharge les helpers pour utiliser jquery Dans le gemfile

gem 'jrails'

Puis dans la console, pour installer les gems manquants

bundle install

Dans la vue il faut ajouter jquery 1.3.2 ou 1.4.2 et les button_to_remote et link_to_remote refonctionnent !

vendredi 6 novembre 2009

Helper pour liste déroulante (select/option html) dans rails

Vous savez comment faire une liste déroulante avec rubyonrails ?

La faire à la main ? L' helper Select ?

Et non ! Il existe un helper spécifique bien plus intéressant mais il fallait le trouver, il s'agit de 'collection_select'.

Voici comment l'utilisé :

Par exemple afficher la liste des familles de produit dans la fiche produit :

<%= collection_select :product, :family_id, @families, :id, :name %>

Dans l'ordre : l'objet, l'attribut, le tableau d'élément, l'attribut 'value' de la balise <option> et le innertext de la balise <option>, vous pouvez aussi rajouter des paramêtres pour inclure un ligne blanche :

<%= collection_select :product, :family_id, @families, :id, :name, { :include_blank => "- Aucune Famille -" } %>

Vous pouvez encore surcharger le comportement de l'élément selectionné. Dans l'exemple ci-dessous 1 est l'id contenu dans 'value' de <option> de l'élément qui sera selectionné.

<%= collection_select :product, :family_id, @families, :id, :name, { :include_blank => "- Aucune Famille -", :selected => 1 } %>

En espérant que ça en aide quelques uns.