2011-03-13 1 views
1

내 모델에 label_length라는 십진수 필드가 하나의 소수 자릿수로 있습니다. 값은 데이터베이스에 저장 될 때 반올림됩니다.레일즈 - 모델 업데이트 십진수 - 데이터베이스에서 반올림 된 값을 렌더링합니다.

레코드가 이미 데이터베이스에 저장되어 있습니다. Offer 모델의 편집 양식입니다. 이제 123.45를 텍스트 필드에 넣고 버튼을 누릅니다. 저장 후 텍스트 필드를 사용하여 편집 작업을 다시 렌더링합니다. label_length의 텍스트 필드에서 123.5가 데이터베이스에 저장되었지만 123.45라는 값을 다시 찾습니다. ([: 제공] PARAMS)

현재 데이터베이스 값을 표시 할 수있는 방법이 있나요

그것은 컨트롤러에서 해당 @offer이 offer.update_attributes를 호출 한 후 업데이트되지 않습니다 보인다?

감사 마크

+0

아마 우리가 당신을 도와 도움이 될 컨트롤러에서 일부 코드를 게시. 코드가하는 일에 대한 명확한 그림이 있지만, 그렇지 않습니다. –

+0

질문에 관련 코드를 추가하십시오. 특히 값의 반올림을 수행하는 방법과 편집 페이지 (컨트롤러 작업 코드)를 렌더링하는 방법에 대해 설명합니다. –

답변

1

마이그레이션은 어떤 모습입니까?

t.decimal :amount, :precision => 6, :scale => 2 

을 지금까지 저장 한 후 데이터베이스의 데이터를 사용하여 레일을 받고 같이 당신은 당신이 예기치 않게 반올림 값이되지 않도록 마이그레이션에 일련의 규모와 정밀도 진수 필드를 만들 레일 메시지를 표시 할 수 있습니다 , 당신은 단순히과 같이 reload에 대한 호출에 추가 할 수 있습니다

if @offer.save 
    @offer.reload 
    ... 
else 
    ... 
end 
+0

@ offer.reload는 내가 찾고 있었지만 찾을 수없는 것입니다. 고마워요, 친절 해요. 마크. –