2008-10-04 5 views
3

Je souhaite utiliser la constante Date :: ABBR_MONTHS dans mon application rails. Je vois la documentation Ruby stdlib à http://www.ruby-doc.org/stdlib/ qui ne semble pas avoir cette constante. Cependant, cette constante est là à http://stdlib.rubyonrails.org/La classe de date est différente dans Ruby stdlib et Rails stdlib

Quelle est la différence entre ces deux bibliothèques?

Cette constante fonctionne sur mon ordinateur de déploiement Unix mais pas sur ma machine dev sous Windows. Quelqu'un peut-il expliquer ce qui se passe?

Répondre

3

ABBR_MONTHS est quelque chose que ActiveSupport vous a donné et qui vient d'être ajouté à la classe Date. La première bibliothèque est pour ruby, où la seconde est pour ruby ​​sur rails. La constante peut ne pas fonctionner à cause de différentes versions de Rails.

1

ABBR_MONTHS est ajouté à Date par ActiveSupport.

Rails est en fait un ensemble de quelques gemmes. Le rôle d'ActiveSupport est principalement d'ajouter des subtilités au langage Ruby et à d'autres outils agnostiques comme l'Inflector et la façon de créer des instances de temps, etc.

Donc, si vous avez besoin de ce genre de capacité en dehors de votre application de rails pour une raison quelconque, vous avez de la chance:

require 'rubygems' #If not already done 
require 'activesupport' 
puts Date::Format::ABBR_MONTHS.inspect 
#=> {"oct"=>10, "jul"=>7, "jan"=>1, "dec"=>12, "jun"=>6, "apr"=>4, "feb"=>2, "may"=>5, "sep"=>9, "aug"=>8, "mar"=>3, "nov"=>11}