2017-02-08 3 views
0

금전적 가치를 내기 위해 금전 등록기 보석을 사용하고 있습니다. 이 분야에 대한 필터를 갖고 싶습니다. DB에 저장된 값은 센트로 저장되지만 필터는 실제 값에만 적용됩니다.액티브 관리자에서 머니 필터를 사용하는 방법?

+0

당신은 (100을 곱한) 센트에있는 데이터가 DB에 저장되어있는 DB –

+0

데이터에 저장되는 방법에 대한 예를 게시 할 수 있습니다. 따라서 실제 가격이 289 인 경우 db에 저장된 데이터는 289 * 100 = 28900이됩니다. –

답변

1

맞춤 런 커커를 사용할 수 있습니다.

# in your model 
ransacker :price_money, formatter: proc { |v| v.to_i * 100 } do |parent| 
    parent.table[:name] 
end 

# in your admin file 
filter :price_money 
+0

시도했습니다. ransacker : price_money, formatter : proc {| v | v * 100} do | parent | parent.table [: 가격 _ 값] 끝 하지만 검색시 오류가 발생합니다. 필터 입력으로 5를 사용하면 오류가 '555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555가 범위를 벗어났습니다. ActiveRecord :: Type :: Integer with limit 4' –

+0

문제는 타입 캐스팅의 경우입니다. proc에서는 정수로 변환해야하는 문자열이 나타납니다. proc {| v | v.to_i * 100} –