Lutando por WaSP

Nesse espaço, relato a minha luta por Web Standards, pois internet é para todos.

terça-feira, janeiro 17, 2006

Rails nos Padrões

Estou testando o Ruby on Rails, simplesmente fantástico, ele já é matéria em revistas populares. Mas estou intrigado com os padrões adotados, alias, só com padrões para garantir tanta facilidade.

Primeiro: o Rails adota plural (em inglês) para nomes de tabelas, então, se a classe se chama "person" a tabela se chamará "People" e se a classe é "child" a tabela será "children", isso faz com que o Rails monte tudo de forma fácil e rápida. Porém, isso, para brazucas como eu, pode ser um problema. Normalmente não fazemos o modelo de dados adontando plurais em tabelas (adotamos sempre singular nas convenções de codificação) e não usamos inglês para batizar nossos objetos de dados. Veja um exemplo: tenho uma classe denominada "material", o Rails procura por uma tabela "Materials" e com certeza não modelarei assim. Sim, e ai?

Ou adotamos os Padrões do Rails e usamos uma ferramenta para ajudar a pluralizar ou partimos para a configuração: desligamos o recurso no ActiveRecord, basta ir na pasta config, editar o arquivo environment.rb e atribuir

ActiveRecord::Base.pluralize_table_names = false

Segundo: Surrogate keys, ou seja, cada tabela tem um atributo que identifica o registro como único, isso independente da chave de negócio. Esse campo precisa ser denominado "id" (e se for autoincremental, o rails faz a parte dele). Isso também tem ido contra a minha convenção, pois tenho a mania de usar múltiplos atributos para determinar a chave-primária (coisa de normalização). Mas para tentar adequar aos meus padrões, tanto no nome do atributo (id) quanto na quantidade de campos participando de primary-key, estou usando o método set_primary_key.

Dentro da pasta model abra o arquivo da classe:

class Material < ActiveRecord::Base
set_primary_key "cod_material"
end

E assim, de forma simples, vamos resolvendo as questões de padronização.

Meu desafio agora é adequar a interface. Eu não gosto muito de repetir as ações por registro (Editar, Excluir, Exibir). Prefiro assim:



Estou usando o RadRails como editor e recomendo. E tutorial sobre Ruby on Rails estão ai, no site ao lado.

Para os amantes do DBDesiner4, temos o DBModelGEM.

Com Ruby on Rails é assim, tudo é simples!

o[>_<]o
[Lutando por WaSP]