Я хочу использовать константу Date :: ABBR_MONTHS в моем приложении rails. Я вижу документацию Ruby stdlib в http://www.ruby-doc.org/stdlib/, которая, похоже, не имеет этой константы. Однако эта константа присутствует в http://stdlib.rubyonrails.org/
В чем разница между этими двумя библиотеками?
Эта константа работает на моей машине развертывания unix, но не на моей машине разработки в Windows. Кто-нибудь может объяснить, что происходит?





ABBR_MONTHS - это то, что вам дает ActiveSupport, и он просто добавлен в класс Date. Первая библиотека предназначена для Ruby, а вторая - для Ruby on Rails. Константа может не работать из-за разных версий Rails.
ABBR_MONTHS добавляется в Date с помощью ActiveSupport.
На самом деле Rails - это набор из нескольких драгоценных камней. Роль ActiveSupport в основном состоит в том, чтобы добавить тонкости к языку Ruby и другим независимым инструментам, таким как Inflector, способ создания экземпляров Time на 2 дня и так далее.
Так что, если вам по какой-то причине нужна такая возможность за пределами вашего приложения rails, вам повезло:
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}