특정 조치 (신장, 체중, neck_circumference 등) 나는 그것이 미터법 측정을 위해 모두를 작업 할simple_form 및 즉시 변환에
소요 모델이있는 곳에 내가 레일 응용 프로그램을 쓰고 있어요 체계.
내 모델에는 미터법이나 영국식 둘 다일 수있는 measure_unit 속성이 있습니다. 모든 측정 값은 미터법으로 데이터베이스에 저장됩니다.
저는 simple_form 보석을 사용합니다. 사용자가 제국 시스템을 사용하면 데이터가 즉시 변환되도록보기를 구현하는 방법에 대한 단서가 없습니다.
<% if @customer.measure_unit.eql? "metric" %>
<%= f.input :height %></br>
<% else %>
...
<% end %>
공백을 어떻게 채우나요?
편집 - 발견 작업 솔루션
I는 "height_in_cm"데이터베이스의 항목을두고 "height_in_in"와 같은 가상 속성을 사용하여 결국은 mm에 저장합니다.
def height_in_cm
height/10
end
def height_in_cm=(height)
self.height = height.to_f * 10
end
def height_in_in
height * 0.039370
end
def height_in_in=(height)
self.height = height.to_f/0.039370
end
그리고 뷰의 코드 : 값을 나타내는
<% if @customer.measure_unit.eql? "imperial" %>
<%= f.input :height_in_in %></br>
<% else %>
<% if @customer.measure_unit.eql? "metric" %>
<%= f.input :height_in_cm %></br>
<% end %>
<% end %>
네, 가능합니다. 그것을 구현하려고합니다. 고맙습니다! – TopperH
당신의 솔루션은 유망스럽게 보였지만 이미 변환 된 측정 값에 대해서도 변환 작업을 다시 계산하는 업데이트 작업을 망쳐 버리는 결과를 낳았습니다. – TopperH