Alguns meses atrás escrevi um plugin chamado Inputs. Como pode ser lido neste post, o objetivo é facilitar a criação de máscaras em campos de formulário.
Após ter descoberto o Formtastic, passei a utilizar o mesmo em todos os projetos aqui na Zigotto. Gosto muito da maneira que ele me permite trabalhar e escrever o código mais limpo e organizado.
E com tudo isso, comecei a me perguntar:
- O Inputs pode ser utlizado junto com o Formtastic?
- Como unir os dois de uma maneira bem simples e continuar usando o Formtastic para trabalhar com os formulários?
Imaginei algo como:
<% semantic_form_for @product do |form| %>
<%= form.input :price, :mask => :decimal %>
<%= form.commit_button %>
<% end %>
Gostei! É exatamente isso que eu quero!
Inputs foi atualizado e agora é possível através da opção :mask informar qual o tipo de máscara que você quer inserir no campo do formulário!
Como usar?
- Instale e configure o Formtastic em seu projeto. Veja como fazer isso aqui.
- Instale e configure o plugin Inputs. Veja como fazer isso aqui.
Após tudo configurado, é possível se fazer isso:
<% semantic_form_for @customer do |form| %>
<%= form.input :name %>
<%= form.input :phone, :mask => :phone %>
<%= form.input :cpf, :mask => :cpf %>
<%= form.commit_button %>
<% end %>
Você pode utlizar outras máscaras já definidas:
- phone
- phone-us
- cpf
- cnpj
- date
- date-us
- cep
- time
- cc
- integer
- decimal
- decimal-us
- signed-decimal-us
ou criar a sua própria máscara:
<% semantic_form_for @product do |form| %>
<%= form.input :year, :mask => '9999' %>
<%= form.input :phone, :mask => '99-9999-9999' %>
<%= form.commit_button %>
<% end %>
Inputs utiliza o plugin meioMask para criar as máscaras, demais opções e configurações podem ser vista na própria página do meioMask.
Sugestões, criticas são bem vindas. O código esta no Github, fiquem a vontade para utilizar, modificar e compartilhar






Configurei o ‘formtastic’ na minha aplicação e tentei usar o inputs sem sucesso.
Tenho o ‘jrails’ instalado e configurado corretamente, além do ‘inputs’. Os includes de javascript aparecem corretamente na página, e os forms aceitam a sintaxe do ‘inputs’.
Porém, os inputs continuam sem máscara. O que pode estar acontecendo?
Olá Murilo,
Ao instalar o Inputs, um arquivo js é instalado dentro da pasta public/javascripts, este arquivo é o responsável por criar as máscaras.
Tente rodar as tasks abaixo no terminal que os arquivos serão atualizados:
rake inputs:installrake inputs:updateApós, restarte o server e tente novamente.
Abraço.