Хорошо, мне нужно что-то вроде этого:
time_span = "1.month"
date = DateTime.now
date = date + send("#{time_span}")
где time_span фактически хранится в базе данных, но это, похоже, не работает ..
Вот некоторые действия консоли:
$ rails c
>> time_span = 1.month
=> 1 month
>> date = DateTime.now + time_span
=> Fri, 27 Aug 2010 20:51:18 -0500
>> time_span.class
=> Fixnum
>> time_span = '1.month'
=> "1.month"
>> date = DateTime.now + time_span
TypeError: expected numeric
ruby/1.8/date.rb:1236:in `plus_without_duration'
date/calculations.rb:87:in `+'
from (irb):5
Идея состоит в том, что мне нужно хранить 1.month как строку в базе данных, потому что хранение 1.month как fixnum хранит только общее количество секунд в этом конкретном месяце, но я хочу, чтобы оно было более динамичным на текущий месяц Я знаю, что send
в этом случае не используется, как следует из документации, но я видел, что он использовался таким образом.