2011-02-24 5 views
1

.find가 데이터베이스에서 다시 가져 오는 값에서 제로 퍼팅을 제거하지 않도록 할 방법이 있습니까?ROR : 데이터베이스 쿼리시 제로 패딩이 제거되었습니다.

즉. 데이터베이스에 우편 번호가 있고 그 중 일부가 5 자보다 짧습니다. 나는 데이터베이스에서 5 문자를 다시 쓰려고하지 않으므로 예를 들어 "00210"으로 끝납니다. 그러나이 값은 내 배열에서 "210"이됩니다.

저는 "% 05d"% 값을 사용하여 제로 패드에 사용할 수 있다는 것을 알고 있습니다.하지만 뷰로 돌아갈 때 ... 그런 식으로 제로 패드를 사용하지 않아도됩니다.

+0

문제는 데이터베이스 내부에있는 것 같습니다. 우편 번호 입력란 유형 확인 – fl00r

+0

우편 번호 입력란에 string 또는 int 유형이 있습니까? 나는 AR이 db로부터 다시 끌어온 문자열을 변경하지 않을 것을 권 하겠지만, 정수에서는 앞에 오는 0을 제거 할 수 있습니다. –

+0

그래, 선행 0은 텍스트 또는 문자 형식으로 제거하지 않습니다. 여전히 앞에 오는 0으로 정수를 반환 할 수 있어야합니다. –

답변

1

Fixnum (처리중인 루비 유형)은 가치에 대해서만 신경을 쓰고 있습니다. 루비의 my_var = 00000001my_var을 1로 설정하고 문자열로 출력하면 "1"이됩니다. 포맷을 다르게 지정하려면 문자열 기능에 의존해야합니다.