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
escricao, :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.
[...] 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