Rails e Javascript: Escrevendo seu próprio javascript.
Posted: December 9th, 2009 | Author: Márcio Gasparotto | Filed under: Tutorial, ruby on rails | 2 Comentários »O integração padrão entre Ruby on Rails e Javascript sempre foi muito boa, as possibilidades com rjs, métodos que respondem javascript, json, etc. ajudam muito.
Mas o que vou falar hoje é sobre como escrever seu próprio javascript, sem depender dos helpers do rails. Na minha opinião, embora a integração existente ajude muito, quando queremos ir pouco mais fundo, ou em um projeto muito grande que exija mais do que simples chamadas ajax eu prefiro criar meu próprio javascript, isso pelo simples fato de que faço do jeito que eu quero, organizo minha biblioteca de arquivos js da forma que melhor se adapta ao projeto e tenho total controle sobre o que estou fazendo, não fico “preso” ao jeito de fazer “imposto” pelo rails.
Só um aparte neste ponto, NÃO estou dizendo que rjs é ruim pelo contrário ele ajuda muito em muitas coisas.
Bem, dito isso vamos por a mão na massa! Em primeiro lugar aviso que usarei o jquery ao inves do prototype, não vou entrar em detalhes de como configurar o jquery no rails pra isso você pode usar o jrails (eu uso).
O cenário que escolhi para esse post foi algo bem básico, só para exemplificar mesmo, imagine o seguinte: Um cadastro de produtos, esses produtos tem uma categoria e uma subcategoria, então quando eu escolher uma categoria em um select quero que o select de subcategorias seja carregado dinamicamente:
o meu controller eu adiciono o seguinte metodo: (leia os comentários no código)
Ai na view do metodo:
Por fim no meu formulário, na pagina de cadastro de produto: (leia os comentários no código)
Vejam que para o exemplo eu estou usando o formtastic, por isso o formulário um pouco diferente do convencional.
Lembre sempre de setar o método no routes.rb também
map.resources :products, :collection => { :ajax_load_sublinhas => :get }
Vejam que temos muita liberdade para fazer a coisa do nosso jeito, esse foi só um exemplo bem simples de selects dinâmicos, mas o leque de coisas que podemos fazer é o quanto a nossa imaginação permitir.
Qualquer dúvida é só comentar.
This is it!
Boa Noite Marcio, tudo bem ??
Estou comecando a aprender Rails, e esse exemplo que voce deu é algo que estou tentando fazer.
Vi seu exemplo mas nao entendi muito bem. Sera que voce nao tem o codigo completo desse projetinho para me enviar para que eu veja e estude melhor cada parte.
Meu email é fabio.rails[ at ]gmail.com
Grato
Oi Fábio, tudo bem!
Então, eu escrevi esse post baseado em algo que precisei fazer para um cliente, esse código foi só para exemplificar mesmo, não tenho o código completo do “projetinho”.
Mas qualquer dúvida posta ai.
Tem também o grupo rails-br no google que pode te ajudar.
Abração.