2017-02-08 2 views
0

Ich benutze Geldschienen Juwel für monetäre Werte. Ich möchte auf dieses Feld filtern. Die im DB gespeicherten Werte werden in Cent gespeichert, der Filter wird jedoch nur auf die tatsächlichen Werte angewendet.Wie Geld Filter in Active Admin verwenden?

+0

Können Sie nach einem Beispiel dafür, wie die Daten in den DB –

+0

Daten in db gespeichert gespeichert wird in Cent (multipliziert mit 100). Also, wenn tatsächliche Preis Menge 289 ist, in db gespeicherten Daten werden 289 * 100 = 28900. –

Antwort

1

Sie können einen benutzerdefinierten Runsacker dafür verwenden.

# 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

Versuchen gleicher Ransacker: price_money, Formatierer: proc {| v | v * 100} do | parent | parent.table [: price_cents] Ende Aber Fehler bei der Suche bekommen. Wenn ich 5 als Filtereingabe verwende, ist der Fehler '55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 liegt außerhalb des Bereichs für ActiveRecord :: Type :: Integer mit Limit 4' –

+0

Das Problem war mit Typecasting. In Proc wurde eine Zeichenfolge gefunden, die in Ganzzahl konvertiert werden musste. proc {| v | v.to_i * 100} –

Verwandte Themen