Представляете год с RoR? - PullRequest
       22

Представляете год с RoR?

4 голосов
/ 04 декабря 2008

Предположим, вы реализуете базу данных публикаций и создаете миграции для представления различных публикаций. С каждой публикацией связан «год».

t.column :year, ???

Будет ли этот год лучше всего представлен как целое число, дата или дата-время?

Ответы [ 3 ]

9 голосов
/ 04 декабря 2008

Я предлагаю использовать целое число. И Date, и DateTime имеют большую точность, чем вы хотите, что может ввести в заблуждение. Даже если вы инициализируете их только через год, они будут хранить месяц и день по умолчанию (1 января). Например, если вы используете Date, ваш вывод будет выглядеть так:

>> m = YourModel.create(:year => '2008')

>> m.year.to_s
=> "2008-01-01"

Если вы используете целое число, вы получите то, что ожидаете:

>> m = YourModel.create(:year => '2008')

>> m.year.to_s
=> "2008"
7 голосов
/ 04 декабря 2008

Я бы порекомендовал просто придерживаться соглашений Rails и использовать тип данных Date. Таким образом, если вам когда-либо понадобится нужны месяц и день, вы можете получить их. Плюс это просто сделать:

YourModel.date.year  # => "1999"
0 голосов
/ 04 декабря 2008

Ну, если вы заботитесь только о годе , целое число будет работать правильно. Если вы не уверены, что вам никогда не понадобятся месяц и день, затем дата, а если вам также могут понадобиться час / минута / секунда, а затем дата и время, но если вам нужна дата и время, его не следует называть годом : -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...