Blog do Hollander :: RoR de leigo para leigos

19 outubro, 2008

Integrando Rails 2 com Adobe Flex 3

Filed under: Flex, Ruby / Rails — Tags: — hollanderramos @ 23:48

Após alguns meses sem postar nada, retomo a publicação de artigos. Infelizmente, estes intervalos entre publicações podem ser mais contantes do que eu esperava pois o tempo está curto! Mas vamos em frente…

Após iniciar meus estudos em Rails, eu fiquei muito frustado com o resultado final de apresentação na web. De fato, minha frustração não é com o Rails, mas sim quando é necessário criar uma aplicação baseada em RIA. RIA –ou, literalmente traduzindo: Aplicações Internet Ricas– é uma tendência criada nos últimos anos que dotam uma página web de funcionalidades similares as encontradas em uma aplicação desktop.

Devido ao conceito MVC do Rails, a parte que cabe a apresentação visual é independente do resto, permitindo que um mesmo modelo de negócio possua até várias visões, para vários tipos de aplicações. Podemos ter uma visão para web, outra para dispositivo móvel e assim, sucessivamente para quaisquer outras formas de apresentação.

Particularmente, eu tenho problemas com a camada de apresentação, principalmente, quando o negócio é HTML, CSS e AJAX. Não gosto de perder tempo testando se a forma de visualização de uma página será a mesma no Explorer, Firefox, Ópera e agora, Chrome. Perder tempo significa utilizar hacks em CSS para compatibilizar a exibição ou comandos que não possuem suporte neste ou naquele navegador.

Estou estudando o Adobe Flex desde Julho (sim, mais um negócio para aprender — e menos tempo para escrever ;)). Flex é uma tecnologia que permite o desenvolvimento de aplicações sobre a plataforma Macromedia Flash (ops! Agora Adobe Flash). A vantagem é o grande nível de facilidade de desenvolvimento além do resultado final superior, quase similar a aplicações desktop!

Flex utiliza uma linguagem de marcação (mxml). Basicamente, as instruções deste arquivo são enviadas para um servidor que compila gerando um segundo arquivo (swf), este compatível com o Macromedia Flash (agora Adobe Flash). Logo, um dos requisitos básicos é que o cliente possua o Flash instalado no computador.

Neste artigo, vamos ver como fazer a integração entre RAILS 2.0.2 (utilizando o Aptana) e o Adobe Flex Bulder 3 que é a última versão até o momento.

Requisitos

Para este artigo será necessário:

- Adobe Flash versão 10 ou superior.

- Adobe Flex Builder versão 3.0.1 devidamente instalado.

- Aptana Studio com o RadRails devidamente instalado.

Parte I – RAILS

Vamos começar pela parte difícil: ;) Precisamos montar um projeto Rails com um controller, retornando um simples texto que será utilizado no Flex. O famoso Olá Mundo!

1) Crie um novo projeto no RadRails, utilizando o menu File > New > Rails Project:

Escolha o Nome do projeto (Project Name). No meu caso flex3maisrails;

Também determine o Local de criação da aplicação (Location), eu escolhi: c:\Documentos\Sistemas\Testes\flex3maisrails.

Não se preocupe com o tipo de Banco de dados (Database). Ele não será necessário neste exemplo.

Escolha a versão do Rails: 2.0.2

Desabilite a opção para iniciar o servidor automaticamente após a criação do projeto (Automatically start server after project is created). Se você não fizer isso, vai ter que reiniciar o servidor  mais tarde após o passo 5.

Pressione o botão Finish para criar o projeto.

2) Uma vez criado o projeto, precisamos criar um controller. Selecione a aba Generators.

O tipo de Gerador (generators) escolha controller.

Em Parâmetros (parameters) digite: olamundo index. Este comando irá criar – em um único passo – um controller de nome olamundo com um action de nome index. Lembre-se de manter tudo em minúsculas devido as convenções do rails.

Pressione o botão Go para gerar o controle.

3) Vamos agora, desabilitar a integração com banco de dados. Ela não será necessária.

Via Ruby Explorer, selecione a pasta: flex3maisrails > config e abra o arquivo enviroment.rb. Após a instrução Rails::Initializer.run do |config|, inclua o comando:

config.frameworks -= [ :active_record]

4) Vamos agora editar o controle para gerar uma resposta:

Via Ruby Explorer, selecione a pasta: flex3maisrails > app > controllers e abra o arquivo olamundo_controller.rb. Dentro do bloco def index .. end, inclua o comando:

render :text => 'De Rails: Olá Mundo!'


5) Salve tudo (ctrl+shift+s). Lembra que no passo 1 eu falei para desabilitar o lançamento do servidor? Bem, se você não fez isso lá, vai ter que interromper o servidor aqui para que as alterações do enviroment.rb (não usar o banco de dados) possam ser aplicadas.

6) Reinicie o servidor. Aguarde o boot completo. Abra seu navegador preferido e digite o endereço da aplicação: No meu caso: http://127.0.0.1:3001/olamundo

Se o navegador mostrar algo semelhante a figura abaixo, a parte I estará finalizada:

Parte II – Flex

Uma nota preliminar nesta parte: Os próximos passos seguem a ilustração pelo Adobe Flex Builder 3. É importante ressaltar que esta ferramenta é uma IDE, assim como o Aptana. Sua utilização é opcional. Os arquivos apresentados nos próximos passos podem ser criados através de um editor de textos, porém neste caso, será necessário ter instalado pelo menos o SDK do Adobe Flex 3 para fazer a compilação.

A parte em Flex 3 é tão fácil quanto a anterior:

7) Vamos preparar o caminho para o projeto em Flex. Para isso é necessário criar duas pastas: via cmd digite:

md c:\Documentos\Sistemas\Testes\flex3maisrails\app\flex

md c:\Documentos\Sistemas\Testes\flex3maisrails\public\flex

Nota: O primeiro caminho é onde os arquivos mxml serão armazenados. O segundo caminho é o local de onde a aplicação será lançada.

8) No menu do Flex Builder, selecione File > New > Flex Project. A tela ao lado será exibida:

Em Nome do Projeto (Project name), digite o mesmo nome criado no Rails. No meu caso: flex3maisrails.

Também determine o Local de criação da aplicação (Location), com o mesmo caminho do Rails. Eu escolhi: c:\Documentos\Sistemas\Testes\flex3maisrails.

Selecione o tipo de aplicação como Web application (runs in Flash Player).

Tipo de servidor (Application server type) deixe como None.

Pressione o botão Next.

9) Nesta etapa, digite na pasta de saída (output folder): public\flex. Este será o local onde o arquivo compilado e o html proprietário será gerado. Novamente, pressione o botão Next.

10) Na próxima tela, preencha o campo Main source folder (pasta das fontes principais) com: app\flex. Em Main application file (arquivo principal da aplicação), digite: Flex3maisrails.mxml. Note que a primeira letra está em maíuscula conforme convenção. Finalmente, pressione o botão Finish para criar a aplicação.

11) O projeto agora está criado e o arquivo Flex3maisrails.mxml deve estar aberto. Digite os comandos em negrito:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:HTTPService
id="ChamaServico"
url="/olamundo/index"
method="POST" />
<mx:Button x="10" y="10" label="Chamar Rails"
click="ChamaServico.send()" />
<mx:Label x="10" y="40" text="{ChamaServico.lastResult}"/>
</mx:Application>

<mx:HTTPService: é o objeto responsável por criar uma chamada ao Rails. O endereço para submeter a chamada é definido pelo atributo url. O id identifica o nome do objeto que será referenciado nos outros comandos.

<mx:Button: responsável por criar um botão associado ao evento (click) que dispara a solicitação ao Rails.

<mx:Label: responsável por receber o retorno da solicitação através do atributo text.

12) Salve o projeto (ctrl+shift+s). É necessário agora compilar. Para isso uma última configuração é necessária. Desmarque a opção que está no menu Project > Build Automatically. Isso irá habilitar o comando Build All. Pressione ctrl+b e aguarde a finalização.

13) Retorne ao navegador novamente. Abra o endereço http://127.0.0.1:3001/flex/Flex3maisrails.html. A aplicação em Flash deve ser exibida. Pressione o botão Chamar Rails e veja a resposta.

É isso. Se tudo correu bem você obteve a resposta do action do Rails. caso não esteja vendo nada, sugiro que antes de mexer novamente no código, verifique se o Flash está instalado e operacional em seu navegador. Para isso, visite algum site que possua o recurso.

Espero que este artigo lhe encoraje a seguir Rails e também o Flex.

23 maio, 2008

Dicas rápidas de RADRails III – Aba Generators

Filed under: Ruby / Rails — Tags: — hollanderramos @ 22:37

Continuando a série de dicas sobre o RADRails, a abordagem agora é sobre a aba Generators. Esta opção serve para gerar um “esqueleto” selecionando o modo create ou apagar os arquivos criados selecionando o modo destroy pelo Rails.

No campo Generator, as possibilidades de seleção são:

controller – Cria o controle passado como parâmetro.

integration_test – Cria um teste de integração. O arquivo deve começar com maiúsculas ou underscore (_) e não pode começar com a palavra Test.

mailer – Cria um modelo para formulário de envio de e-mail.

migration – Cria um arquivo para migração de banco de dados.

model – Cria uma classe de modelo que será utilizada para comunicação com o BD.

observer – Cria um modelo e um arquivo para testes. Um observer serve para monitorar a vida de um evento de um modelo sem ter que – para isso – criar a lógica dentro do próprio modelo. Confuso não? :)

plugin – Serve para criar um plugin que acrescenta funcionalidades a outros projetos.

scaffold – Um dos recursos mais poderosos (porém não completo) do Rails. Cria automaticamente um modelo, controle e visão sobre uma tabela do BD, deixando pronto ao uso. Útil para ganhar produtividade, porém não muito flexível para personalização.

Opções: (entre parênteses a opção em linha de comando)

Pretend (-p ou –pretend) – Executa o script, mas não faz nenhuma mudança. Bom para verificar erros de sintaxe.

Force (-f ou –force) – Sobrepõe arquivos que já tenham sido anteriormente criados.

Skip (-s ou –skip) – Preserva arquivos que já tenham sido anteriormente criados.

Quiet (-q ou –quiet) – Omite a saída dos comandos no console

Backtrace (-t ou –backtrace) – Utilizado para depuração

Use SVN (-c ou –svn) – Modifica os arquivos com o Subversion

16 maio, 2008

Dicas rápidas de RADRails II – Aba Servers

Filed under: Ruby / Rails — Tags: — hollanderramos @ 21:11

Continuando as dicas sobre RadRails 1.0, vamos discorrer a respeito da guia servers.

A guia exibe uma lista dos servidores que estão em serviço. A alternativa via menu para esta aba é:
Window > Show View > Other…, após abrir a janela Show View, selecione Aptana Standard Views e finalmente Servers.

Normalmente para cada projeto criado, um servidor estará listado. A grade contém os campos:

  • Name – Nome do servidor
  • Status – Indica se o servidor está parado (stopping) ou rodando (running)
  • Description – Descrição do servidor.
  • Type – Tipo do servidor
  • Host – Endereço IP sob a qual o servidor estará rodando.
  • Port – Porta de serviço

Para editar os parâmetros de um servidor, dê um duplo clique sobre a opção. O servidor deverá ser parado (stopping) antes de ser alterado. E o que pode ser alterado? Esta opção varia de acordo com o servidor. No caso de um servidor Rails, são apresentados os seguintes parâmetros:

  • O nome do servidor;
  • O seu tipo quando o servidor instalado assim permitir, exemplo Rails permite: WEBRick, Mongrel ou LighTPD;
  • O endereço IP do host;
  • A porta;
  • E o ambiente (Desenvolvimento, Produção ou testes).

A barra de ferramentas possui as demais opções (que também pode ser acessada via botão direito do mouse):

Add Server - Permite adicionar e configurar um novo servidor através da lista de opções exibidas:

  • Apache Server - Configura um servidor web Apache.
  • Internal Jetty Server – Configura um servidor web baseado em Java.
  • Jaxer Server / Package Server – Configura um servidor web capaz de reconhecer instruções AJAX tanto do lado cliente como do lado servidor.
  • MySQL Server – Adiciona um servidor de Banco de Dados MySQL
  • Rails Server – Um dos servidores do RoR.
  • XAMPP Server – Distribuição que contempla um servidor Apache, MySQL, PHP e Pearl em um único pacote.

Start Server – Põe o servidor para rodar (running mode)

Start Server in Debug Mode – Põe o servidor para rodar em modo de depuração de erros.

Restart Server – Aplicado apenas para servidores já iniciados, encerra o serviço e ativa-o novamente.

Pause Server – Interrompe temporariamente o servidor.

Stop Server – Encerra o servidor de modo definitivo.

Open Console Shell – Abre a aba de console contendo informações sobre o atual serviço.

Open Log – Abre os arquivos de registro sobre o andamento do servidor.

View Statistics - Exibe dados relativos a estatística do servidor. As estatísticas não estão disponíveis para todos os tipos de servidor.

6 maio, 2008

Embedded Codes (Códigos Embutidos) em views

Filed under: Ruby / Rails — Tags:, — hollanderramos @ 21:42

Embedded Codes ou Códigos embutidos são instruções, objetos ou qualquer outra coisa que é inserido dentro de um documento. Por exemplo um gráfico Excel inserido dentro de um arquivo do Word.

Os arquivos de visão do RoR, basicamente são compostos por instruções HTML e pedaços de código em Ruby. O que define a parte que contém a expressão Ruby são tags para blocos especiais, conforme a tabela abaixo:

<%= %> É um dos códigos mais comum. Contém expressões em Ruby que serão substituídas pelo resultado na construção do HTML acrescido por uma quebra de linha.

<%= -%> Idêntico ao anterior, porém não acrescenta uma quebra de linha.

<% %> Contém uma expressão em Ruby cujo resultado não gera uma saída em HTML. Acrescenta uma quebra de linha.

<% -%> Idêntico ao anterior, porém sem acrescentar uma quebra de linha.

<%# %> Insere um comentário. O comando será ignorado e não exibido.

4 maio, 2008

Plugin Brazilian Rails

Filed under: Ruby / Rails — Tags:, , , — hollanderramos @ 12:06

Neste post eu comentei que era mais fácil trabalhar com Rails utilizando a convenção em inglês. Nas andanças da net, achei este plugin que – entre outras coisas – traduz a pluralização do Rails para o português.

Tentei instalá-lo no RADRails, mas obtive falha. Creio que se meu ambiente de desenvolvimento não fosse Windows seria mais fácil. Como necessito trabalhar com este ambiente, minha solução foi ir para o Console e tentar instalar o plugin via prompt. Ocorre que não está muito claro como se faz isso.

No site existe dois exemplos:
O primeiro é para instalação em Rails 2.1 (ainda não lançado – enquanto escrevo este post).
ruby script/plugin install git://github.com/tapajos/brazilian-rails.git

O segundo é para instalação em versões anteriores:
ruby script/plugin install svn://rubyforge.org/var/svn/brazilian-rails

Ambos comandos acima não funcionaram em Windows. Mas consegui a dica correta. No console, vá até o diretório do projeto criado e digite:
ruby script/plugin install http://brazilian-rails.rubyforge.org/svn/

Outra dica importante que não está clara: Para utilizar o plugin, abra o arquivo enviroment.rb que está no subdiretório config da aplicação, e acrescente o comando require ‘inflector_portuguese’ após o bloco Rails::initializer.run END. O código ficará parecido com este:

# Be sure to restart your server when you modify this file
(...)
# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.0.2' unless defined? RAILS_GEM_VERSION
# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')

Rails::Initializer.run do |config|
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
(...)
config.action_controller.session = {
:session_key => '_App_session',
:secret => '88bc...c62e'
}
# Use the database for sessions instead of the cookie-based default,
(...)
# config.active_record.default_timezone = :utc
end
require 'inflector_portuguese'

Salve o arquivo. Agora, você já pode criar classes com pluralização em português.

Em futuros artigos, tentarei explorar as outras funcionalidades do Brazilian-Rails.

29 abril, 2008

Dicas rápidas de RADRails I – Novo Projeto

Filed under: Ruby / Rails — Tags: — hollanderramos @ 22:06

Como dito aqui RADRails é uma excelente IDE de desenvolvimento para RoR (Ruby on Rails). Nesta pequena série de artigos eu vou explicar rapidamente alguns dos comandos básicos desta ferramenta.

Vamos começar a série com os comandos para criar um novo projeto.

Utilize o menu: File > New > Project e abra a pasta Rails. Selecione a opção RailsProject e clique no botão Next.
Atalho: Pressione simultaneamente as teclas ALT+SHIFT+N, depois tecle R.

Na nova tela que abriu, digite o nome do seu projeto no campo Project Name. Você pode definir a localização para armazenamento do projeto ou optar pela localização padrão. Para tanto selecione o campo Use default location. O campo só é editável quando a localização padrão não está selecionada.

No grupo options (opções), mantenha a opção Generate Rails application skeleton habilitada. Habilitado toda a estrutura de pastas e arquivos serão automaticamente criados.

Selecione o tipo database (banco de dados) que você está trabalhando e o Rails version (versão do Rails) para desenvolvimento. Salvo rara exceção, a opção latest é a escolha.

Create a WEBrick server e/ou Mongrel server estas opções servem para ativar a criação do servidor host da aplicação. WEBrick é o servidor padrão que vem junto com o Ruby. É uma boa opção quando em fase de testes e desenvolvimento da aplicação. Já o Mongrel possui maior performance sendo escrito em Ruby e desenvolvido para o Rails. É a melhor opção para produção.
Selecione a opção Automatic start server after project is created para ativar o servidor assim que o projeto for criado. Caso contrário, você terá que iniciar manualmente.
Disable table pluralization desativa a convenção de pluralização dos métodos. Para saber como a pluralização trabalha veja o post sobre este assunto. Clique no botão next para completar a criação do projeto.

Para abrir a perspectiva de desenvolvimento em Rails, selecione no menu:

Window, Open Pespective, Other… selecionando RadRails na janela que foi exibida.

Por hoje é só. No próximo artigo vamos conhecer as guias Servers, Generators, Rake Tasks e Console.

25 abril, 2008

Guias de referência rápida

Filed under: Ruby / Rails — Tags:, , — hollanderramos @ 21:13

Fuçando na web me deparei com estas preciosidades:Rails Migrations Cheatsheet 1.2.0 e Form Helpers Cheatsheet 1.2.0. Ambos devidamente impressos e colados estrategicamente ao lado da mesa. ;)

24 abril, 2008

Programar em inglês ou desativar a pluralização?

Filed under: Ruby / Rails — Tags:, , — hollanderramos @ 21:35

Em um outro post eu comentei sobre como conhecer bem as convenções do Rails. Bem, este post irá aprofundar um pouco mais no assunto ao abordar as pluralizações.

Pluralização é uma das convenções do Rails para quando você cria por exemplo, um modelo. Por “padrão”, o Rails se encarregará de criar toda a estrutura necessária ao modelo, então o modelo deve ser um nome no singular, a tabela criada estará no plural, o modelo estará no singular, mas com a primeira letra capitalizada (maiúscula), etc.

Esta convenção é de fato uma mão na roda, porém ela só é efetiva quando desenvolvemos usando o inglês. Quando aplicado a gramática portuguesa, ela se torna um problema já que Rails não tem suporte a outras línguas.

A tabela abaixo demonstra a pluralização do modelo carro para todos os métodos gerados pelo Rails:

Método  	Resultado
camelize 	Carro
classify 	Carro
demodulize 	carro
foreign_key 	carro_id
humanize 	Carro
pluralize 	carros
singularize 	carro
tableize 	carros
titleize 	Carro
underscore 	carro

Tudo lindo correto? Errado. Vamos pluralizar agora o modelo injeção:

A primeira coisa é eliminar o cedilha e acentuações o que resulta em injecao:

Método  	Resultado
camelize 	Injecao
classify 	Injecao
demodulize 	injecao
foreign_key 	injecao_id
humanize 	Injecao
pluralize 	injecaos
singularize 	injecao
tableize 	injecaos
titleize 	Injecao
underscore 	injecao

Em vermelho o problema, Rails não reconhece a gramática portuguesa, logo a pluralização não resulta na forma correta injecoes (injeções).

Para verificar como o Rails trabalha com a pluralização visite o: nubyonrails.

Existem maneiras de desativar a pluralização e fazer a programação “na marra”, mas isso gera um custo adicional desnecessário ao desenvolvedor além de quebrar o conceito do framework que é o de focar o desenvolvimento apenas naquilo que é fundamental.

E, traduzindo o modelo, não irá garantir que os campos que são controlados pelo Rails como “id”, “created_at”, “updated_at” entre outros, também serão traduzidos, ou seja, você terá que mantê-los ou novamente, dedicar tempo a esta tarefa.

Por fim, qual dos códigos abaixo é o de mais fácil compreensão?

1: @liner = Liner.find_by_code "001"
2: @liner = Liner.find_by_codigo "001"
3: @armador = Armador.find_by_code "001"
4: @armador = Armador.find_by_codigo "001"

Se você domina o inglês, obviamente irá optar pela primeira opção. Se você é adepto do português irá escolher a opção 4 (depois de desabilitar a pluralização), só que isso implica em ter o seu código funções pseudo-traduzidas pois o “find_by” não é traduzido. Ah! Mas então, para evitar isso, você pode partir para a solução 3, ter todos os campos escritos em inglês, o que não parece lógico já que não existe nenhum grande esforço adicional em também ter o modelo traduzido.

Portanto, a melhor solução é continuar usando a pluralização e traduzir seus campos para o inglês. Quem sabe, com o tempo que você vai ganhar no desenvolvimento, você consegue finalmente se inscrever naquele curso de inglês? :)

23 abril, 2008

Recomendação de leitura

Filed under: Ruby / Rails — Tags:, , — hollanderramos @ 0:00

Nem só de Internet vive o desenvolvedor. Livros são essenciais para complementar os estudos em uma linguagem. Meu atual livro de cabeceira é o Rails Solutions – Ruby on Rails Made Easy de Justin Williams ainda sem tradução para o português. De leitura fácil e com exemplos práticos ele aborda os princípios básicos do RoR, passando pela introdução a linguagem, princípios e fundamentos, instalação em diversas plataformas, recomendação de ferramentas de edição, síntaxe básica, classes e objetos, modelos, migrações, controllers, visões, AJAX, autenticações, plug-ins, processo de controle de transferência para a produção com o Capistrano e finalmente como bônus, a criação e controle testes.

O livro não aborda a última versão do Rails (2). Poucos comandos precisam ser adaptados, mas nada muito complexo. Uma rápida visita ao Google resolve as incompatibilidades.

Conteúdo
Introduction to Ruby on Rails
Installing Rails
Ruby for Rails Developers
Getting Started with Rails
More Advanced Rails
Formatting Data
Introduction to Ajax
Bringing Forms to Life with Ajax
Uploading Files and Sending Attachments
User Authentication and Session Management
Customizing Rails Views
Using Rails Plug-ins and Engines
Deploying with Capistrano

Uma prévia do livro pode ser visto no Google Books.

Maiores infomações, visite o site do Amazon.

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.

Older Posts »

O tema Silver is the New Black. Crie um website ou blog gratuito no WordPress.com.

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.