금전적 가치를 내기 위해 금전 등록기 보석을 사용하고 있습니다. 이 분야에 대한 필터를 갖고 싶습니다. DB에 저장된 값은 센트로 저장되지만 필터는 실제 값에만 적용됩니다.액티브 관리자에서 머니 필터를 사용하는 방법?
0
A
답변
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} –
당신은 (100을 곱한) 센트에있는 데이터가 DB에 저장되어있는 DB –
데이터에 저장되는 방법에 대한 예를 게시 할 수 있습니다. 따라서 실제 가격이 289 인 경우 db에 저장된 데이터는 289 * 100 = 28900이됩니다. –