'T' добавляется в мои даты Ruby & Resque

По какой-то причине, когда я передаю свои datetime в другой класс с Resque.enqueue, я получаю 'T', где после пробела была дата, а другие пробелы удаляются...

Это метод:

def self.enqueue_job(start_date, end_date, type, date_type)
    query = [start_date, end_date, type, date_type].join(',')
    begin
        Resque.enqueue(Reports::Generator, start_date, end_date, type, date_type)
        add_to_queue(query)
    rescue Resque::TermException
        Resque.enqueue(Reports::Generator, start_date, end_date, type, date_type)
    end
  end

Что устанавливает переменную запроса в:

"2013-05-31 07:59:59 -0700,2013-06-05 07:59:59 -0700, нет, создал_ат"

Но когда я бегу

@query = [start_date, end_date, type, date_type].join(',')

из приведенной выше модели генератора, @query соответствует:

"2013-05-31T07: 59: 59-07: 00,2013-06-05T07: 59: 59-07: 00, Без,created_at"

Я предполагаю, что это как-то связано с Resque.enqueue, но не понимаю.

1 ответ

Я решил это. Проблема была с преобразованием для Time и DateTime. Я устанавливал значение Time, прежде чем перейти в класс Generator, и где-то вдоль строк оно преобразовывалось в DateTime.

Вот пост, который помог мне прийти к такому выводу: странное поведение Ruby в преобразовании DateTime в Time

Другие вопросы по тегам