Dica rápida para sobrescrever atributos do ActiveRecord no Rails 2.3:
Com esse exemplo, quando o name de um User for recuperado, ele irá capitalizar o nome. E quando for definir o name, ele iá transformar o texto para minusculas.
ruby, rails, linux, php, seo and ui
Dica rápida para sobrescrever atributos do ActiveRecord no Rails 2.3:
Com esse exemplo, quando o name de um User for recuperado, ele irá capitalizar o nome. E quando for definir o name, ele iá transformar o texto para minusculas.
A Plataforma Tecnologia lançou recentemente o has_scope, plugin/gem extraído do InheritedResources (o qual ainda não tive a capacidade de entender o funcionamento).
Ele permite criar filtros nas consultas usando os escopos (named_scopes) definidos no Model de uma forma simples e elegante, mantendo toda a lógica do negócio fora do Controller.
Vamos ao código:
No Model
No Controller, defini quais escopos que vou usar no filtro.
Na View, criei uma partial com os campos do filtro.
Esse formulário do filtro irá chamar o método index usando GET (através da URL), como no exemplo:
Como de costume, esse post é só um aperitivo. Acesse o completíssimo README no GitHub para mais detalhes de utilização.
Quando vamos criar uma aplicação Rails, normalmente executamos uma série de passos (instalação de plugins, gems, controllers, etc.) iguais. Por que não automatizar esse processo?
Usando o ótimo guia escrito pelo Nando Vieira sobre Rails Application Templates, escrevi o meu primeiro template:
Para usar o template, basta chama-lo durante a criação da aplicação com o parametro -m:
Esse template é bem simples e faz apenas o que eu uso sempre em todas as aplicações:
Pode melhorar esse script? Faça um fork no Github
Comentei há alguns dias atrás no Twitter sobre um plugin para Rails que instalei na aplicação que desenvolvemos na Tecmedia: o asset_packager.
O objetivo deste plugin é reduzir o número de requisições e o tamanho dos assets(arquivos javascript e css) em aplicações Rails. Como a maioria das soluções, é quase mágico:
script/plugin install git://github.com/sbecker/asset_packager.git
Gere o arquivo .yml com os assets a serem unificados e comprimidos:
rake asset:packager:create_yml
Ele irá gerar uma estrutura semelhante a essa no arquivo config/asset_packages.yml, já com os assets que estão configurados no seu projeto:
--- javascripts: - base: - prototype - effects - controls - dragdrop - application stylesheets: - base: - screen - header
E no seu layout, basta remover as chamadas antigas e colocar apenas:
<%= stylesheet_link_merged :base %> <%= javascript_include_merged :base %>
Ele ainda tem a
Uma funcionalidade interessante do Rails que descobri através do RubyFlow foi o delegate.
No exemplo simples abaixo, mostra como mapear atributos de um model em outro.
E o que isso faz? Olhe abaixo:
Os atributos que foram declarados com delegate passam a responder como atributos do model Customer.