Дата и время Ruby, подходящая для mysql сравнения

Dunno, если это помогает, но когда Вы разделяете на подклассы (включая анонимно) универсальный тип, информация о типе, доступен через отражение. например,

public abstract class Foo<E> {

  public E instance;  

  public Foo() throws Exception {
    instance = ((Class)((ParameterizedType)this.getClass().
       getGenericSuperclass()).getActualTypeArguments()[0]).newInstance();
    ...
  }

}

Так, при разделении на подклассы Foo Вы получаете экземпляр Панели, например,

// notice that this in anonymous subclass of Foo
assert( new Foo<Bar>() {}.instance instanceof Bar );

, Но это - большая работа, и только работает на подклассы. Может быть удобным все же.

38
задан user94154 10 August 2009 в 16:52
поделиться

2 ответа

Вы можете использовать to_s (: db) для преобразования в формат, удобный для базы данных.

Time.now.to_s(:db)

Однако будьте осторожны, если у вас есть часовой пояс, указанный в Rails, потому что время будут храниться в базе данных в формате UTC. Вам нужно будет указать это для правильного сравнения.

Time.now.utc.to_s(:db)

Вы также можете использовать функцию NOW () в MySQL вместо генерации текущего времени в Ruby.

94
ответ дан 27 November 2019 в 03:14
поделиться

В этом нет необходимости. Позвольте Rails сделать эту работу за вас:

Если ваша модель - Widget , он найдет все виджеты, которые были созданы за последний день:

Thing.find(:all, :condition => ["created_at > ?", Time.now - 1.day])

Rails автоматически преобразует метку времени в правильный формат .

5
ответ дан 27 November 2019 в 03:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: