2011-01-29 5 views
0

저는 start_time, end_time 및 day를 저장하고있는 Practice 모델을 가지고 있습니다.Rails I18n : 요일

해당 정보는 나머지 다른 사이트와 마찬가지로 3 가지 개의 언어로 표시해야합니다.

Start_time 및 end_time은 둘 다 Datetime 유형으로 DB에 저장됩니다.

일은 아직 구현되지 않았지만 선택 상자로 표시됩니다. 사람들이 상수 배열을 제안하고 DB에 정수로 저장하는 것을 보았습니다. 합리적인 것처럼 보이지만 다른 언어 (I18n 또는 Globalize2)를 사용하여 잘 작동한다고 상상해보십시오.

이것을 구현하는 가장 깨끗한 방법은 다른 언어로 잘 작동합니까?

답변

1

데이터베이스에 요일을 저장할 좋은 이유가 없습니다. 그러한 이름이 바뀌면 우리는 놀랄 것입니다. 우리는 7 * 3 문자열에 대해 이야기하고 있습니다. 이것은 응용 프로그램에 대해 처리 할 작은 양의 데이터입니다.

i18n이 최선의 방법입니다. 브라우저 this repository을 사용하면 day_names이 이미 다른 언어로 traslated 된 것을 확인할 수 있습니다.

+1

어떻게하면 특정 로캘의 주어진 시간 개체의 요일을 출력 할 수 있습니까? – lulalala

0

시작 및 종료 DateTime 개체에서 요일을 저장하거나 계산할 수 없다면 ENUM in the database을 사용하는 것이 좋습니다. 이렇게하면 데이터가 정수로 저장되므로 더 적은 공간을 차지합니다. 는 인덱스 화하기 쉽고, 문자열 유형으로의 변환은 자동으로 수행되므로 문자열을 쿼리하고 삽입 할 수 있지만 실제 데이터베이스 값은 정수입니다.

확실히 이러한 값을 문자열로 저장하지 마십시오. 다루는 것이 더 힘들며 더 많은 공간을 차지합니다.