Blog do Hollander :: RoR de leigo para leigos

21 abril, 2008

Muita atenção nas convenções

Filed under: Ruby / Rails — Tags:, , — hollanderramos @ 20:39

Um dos motivos do Rails ser tão produtivo é o fato dele trabalhar com convenções. Com isso, abstrai-se do desenvolvedor a necessidade desta tarefa, ganhando – muito – tempo. Dentre as convenções, uma refere-se a criação dos atributos de um modelo, gerando na migração, os campos nas tabelas. Note esta migração criada por mim:


create_table :liners do |t|
t.column :Codigo, :string, :limit => 3
t.column :Descricao, :string, :limit => 30
t.timestamps
end

add_index(:liners, :Codigo, :unique => true)

Se você já é um veterano de Rails, já deve ter percebido o que está errado. Ok. pare por aqui e pule para o próximo post. Agora, se você é como eu, um novato de pouco mais de 48h na linguagem, continue lendo.

A migração funcionou bem, a tabela foi criada, assim como os campos. O sistema também correspondeu as expectativas até que eu acrescentei a seguinte validação na classe:

validates_uniqueness_of :Codigo

Esta validação evita a criação de registros que contenham o mesmo “código” como valor. Porém, sempre que eu tentava testar o formulário com esta validação habilitada, lá vinha uma mensagem de exceção StatementError de meu Banco de Dados, informando que a coluna codigo não existe.

Como não? Ela (a coluna) está lá! Certo? Outras validações como validates_presence_of :Codigo também está lá na classe e funciona! O que está errado?
A resposta é que não observei a convenção. Os campos no Rails devem estar em totalmente em minúsculas.

Uma rápida alteração no Banco de Dados e em todas as partes da aplicação para codigo e tudo voltou ao normal.

Ainda existe um outro problema nesta minha codificação. O fato dos atributos estarem escritos em português ao invés de inglês, mas isso é um problema para ser discutido em outro momento.

Ou seja, as convenções são uma mão na roda no ganho da produtividade, porém exige do desenvolvedor (principalmente o iniciante) o seu preço: Conhecê-las intimamente.

1 Comentário »

  1. […] ou desativar a pluralização? Arquivado em: Ruby / Rails — hollanderramos @ 21:35 Em um outro post eu comentei sobre como conhecer bem as convenções do Rails. Bem, este post irá aprofundar um […]

    Pingback por Programar em inglês ou desativar a pluralização? « Blog do Hollander :: RoR de leigo para leigos — 24 abril, 2008 @ 21:35


RSS feed for comments on this post. TrackBack URI

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Crie um website ou blog gratuito no WordPress.com.

%d blogueiros gostam disto: