Campos de moeda brasileira com simple_form em Ruby on Rails

Você precisa aplicar máscaras nos campos de moeda para o formato brasileiro? Não se preocupe, vou mostrar um pequeno truque. Mas, primeiro dê uma olhada em um post anterior que escrevi sobre deslocalização usando I18n :: Alchemy, porque você vai precisar desta joia

Agora que você tem a gema e está deslocando atributos, é necessário baixar a versão reduzida de um javascript com várias máscaras já inseridas.

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

Agora, chame isso em seu application.js (ou em outro lugar, talvez uma pasta própria javascript lib):

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

A próxima etapa é criar sua própria entrada de moeda para um formulário simples .

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

@builder.text_field(attribute_name, input_html_options)
end
end

Agora, você só precisa chamar em seu formulário simples para isso:

= f.input :value, as: :currency

Feito isso, seu aplicativo irá mascarar automaticamente este campo para 0,00 e atingir no máximo este valor 100.000.000.000,00