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 );
, Но это - большая работа, и только работает на подклассы. Может быть удобным все же.
Вы можете использовать to_s (: db)
для преобразования в формат, удобный для базы данных.
Time.now.to_s(:db)
Однако будьте осторожны, если у вас есть часовой пояс, указанный в Rails, потому что время будут храниться в базе данных в формате UTC. Вам нужно будет указать это для правильного сравнения.
Time.now.utc.to_s(:db)
Вы также можете использовать функцию NOW ()
в MySQL вместо генерации текущего времени в Ruby.
В этом нет необходимости. Позвольте Rails сделать эту работу за вас:
Если ваша модель - Widget
, он найдет все виджеты, которые были созданы за последний день:
Thing.find(:all, :condition => ["created_at > ?", Time.now - 1.day])
Rails автоматически преобразует метку времени в правильный формат .