0
저는 자동차의 엔진 크기가 데이터베이스에 있습니다 따라서 사용자는 2.5 (리터와 같은) 또는 2500 (CC)의 문자를 쓸 수 있습니다 나중에 정렬이 있으므로 999를 사용해야합니다 -9999 비교할 값레일은 정수 값을 저장하기 전에 변환합니다
나는 아래 함수를 만들었지 만 좀 더 유연 해지고 싶습니다. 게다가, 2000은 이제 레일스가 트리거하기 전에 값을 변환하는 것처럼 보이기 때문에 발생합니다.
입력에 점이나 쉼표가있는 경우 어떻게 변환하고 감지합니까?
before_save :covert_engine
private
def covert_engine
if self.car_engine_size.present?
if Math.log10(self.car_engine_size).to_i + 1 < 4
self.car_engine_size = self.car_engine_size * 1000
end
end
end
P. self.car_engine_size는 데이터베이스의 정수입니다.
http://api.rubyonrails.org/classes/ActiveRecord/AttributeMethods/BeforeTypeCast.html – max