Campos de moneda brasileña con simple_form en Ruby on Rails

¿Necesita aplicar máscaras en los campos de moneda para el formato brasileño? No te preocupes, te mostraré un pequeño truco. Pero, primero eche un vistazo a una publicación anterior que escribí sobre la deslocalización usando I18n :: Alchemy, porque necesitará esta gema

Ahora que tiene la gema y está deslocalizando atributos, necesita descargar la versión minificada de un javascript con varias máscaras insertadas.

http://www.meiocodigo.com/projects/meiomask/

Ahora, llame a esto en su application.js (o en otro lugar, tal vez una carpeta propia javascript lib):

$(document).ready(function($) {
$
("input[type=text].currency").setMask('decimal');
});

El siguiente paso es crear su propia entrada de moneda para una forma simple .

class CurrencyInput < SimpleForm::Inputs::Base
def input
input_html_options
[:type] ||= "text"

@builder.text_field(attribute_name, input_html_options)
end
end

Ahora, solo necesita llamar a su formulario simple para esto:

= f.input :value, as: :currency

Hecho esto, su aplicación automáticamente enmascarará este campo a este 0,00 y alcanzará como máximo este valor 100.000.000.000,00