У меня установлена Active Support 3.0.3 и Rails 3.0.3 с Ruby 1.8.7.
Когда я пытаюсь использовать, 1.week.ago
я получаю
NoMethodError: undefined method 'week' for 1:Fixnum
from (irb):2
Другие основные расширения вроде работают. Я попробовал его на компьютере друга (у него те же спецификации установки и устаревшие версии) с теми же результатами.
Что дает?
Все это в IRB.
Ответы:
Поскольку использование Rails должно обрабатывать это автоматически, я предполагаю, что вы пытаетесь добавить Active Support в сценарий, отличный от Rails.
Прочтите « Как загрузить основные расширения ».
В Rails 3 методы Active Support были разбиты на более мелкие группы, поэтому мы не загружаем много ненужного с помощью простого
require 'activesupport'
. Теперь нам нужно сделать что-то вродеЕсли вам не важна детализация, вы можете загружать более крупные куски. Если вы хотите все одним большим глотком, используйте ...
Для 1.9.2:
Для 1.8.7:
источник
irbtools
. Он включает в себя всевозможные приятные настройки IRB. И, если вам нужно временно отключить их, позвоните,irb -f
и он их не загрузит.Вы можете детально добавлять библиотеки через уже упомянутые
Также есть еще один уровень, на котором вы можете
Но, на данный момент, это , к сожалению , не доступно для
Time
,Date
иDateTime
.Способ обойти это то,
require 'active_support/time'
что даст вамTime
,Date
иDateTime
который решит, что OP просил, не требуя всего.Патч My Rails , который добавляет
active_support/core_ext/date
иdate_time
, превратился в Rails v4.0.0 , так что теперь вы можете требовать их индивидуально. УРА!источник
В моем случае работала следующая ссылка:
https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html
источник
С консоли это работает? Это работает для меня:
источник
Вы можете:
требовать active_support / core_ext
или:
требовать active_support / all
источник