혼란스러운 레일 3 초보자. 내 모델은 다음과 같이 정의 된 PURCHASE_PRICE 속성이 있습니다레일즈 3의 텍스트 필드에 십진수를 표시 할 수 없습니다.
t.decimal :purchase_price, :precision => 12, :scale => 2, :default => 0.00
내 목표는 간단한 레일을 내가보고이 값을 편집 할 수 있습니다 3 응용 프로그램을하는 것입니다. 필자의 모델에서는 소수점 이하 2 자리를 항상 사용하도록 사용자 정의 getter를 정의했습니다.
def purchase_price
sprintf("%.2f",attributes['purchase_price'])
end
이것은 쇼 페이지를 표시 할 때 콘솔에서 올바르게 작동합니다. 편집 페이지에는이 값을 편집 할 텍스트 필드가 있습니다. 내 문제는이 값을 '123.00'으로 저장하면 값이 '123.0'으로 표시된다는 것입니다.
질문은 : 은
-
을
라고 가져 오지 게터됩니다 ?
- 왜 십진법이 아닌 십진수로 표시됩니까? MySQL의에 저장된
업데이트
- 진수 값 :
- 100.2 가치가 방화범을 통해 반환 : 100.20
- 값이 텍스트 필드에 표시 : 100.20
- 값이 콘솔에서 반환 "100.2"
- 텍스트 필드 길이는 문제가되지 않습니다. DB를의 값이 100.21 인 경우
- , 시도 100.21
mu가 말한 것에 추가하여 방화 광구를 사용하여 텍스트 필드를 검사 해보십시오. 여전히 123.0이라고 말합니까? 어쩌면 모든 문자를 표시하지 않을 수도 있습니다 (텍스트 필드가 너무 짧음) – corroded