RAILS


jpeg_banner_rails_for_kids_large

Pessoal mais uma vez, a e-genial vai realizar o evento Rails for Kids para ajudar uma instituição que cuida de crianças e pessoas com necessidades especiais.

O principal objetivo do Rails for Kids é ser um instrumento de ajuda a instituições que cuidam e dão valor a vida a cada manhã. Criado pela e-Genial Soluções Inteligentes, colaboradores e membros da comunidade Rails brasileira como eu e você, o Rails for Kids une o mundo tecnológico com o compromisso social, mostrando que podemos ir além e transformar o virtual em real!

Este ano o Rails for Kids contará com 12 palestras on-line em tempo real, e trará uma galera que tem contribuido muito com a comunidade Rails. Ainda nesta semana o site terá toda a grade já disponível, só estamos aguardando o envio de informações de poucos palestrantes.

O evento será realizado no dia 12 de setembro. Para ter acesso basta fazer uma doação simbólica de R$ 30,00 para ajudar a Cotolengo – MS, o processo é o mesmo do primeiro Rails for Kids realizado no final de 2007, todos irão receber o código de acesso ao evento para assistir ao vivo, ou fazer download das palestras gravadas que estarão disponíveis uma semana após a realização do evento.

Mais detalhes bastam visitar o site oficial do evento:  www.railsforkids.com.

Se você apoia esta causa, ajude-nos a divulgar o evento, e tendo qualquer dúvida não deixem de entrar em contato com a e-genial.

Clique aqui e leia o post original.

É com muito orgulho que convido a todos para participarem da palestra CONHECA RUBY ON RAILS, que será realizada por meu amigo Daniel Lopes, que já é bastante conhecido na comunidade, tendo uma enorme experiencia profissional  tanto em desenvolver projetos, quanto em ministrar treinamentos profissionais de diversas tecnologias inovadoras, entre elas, ruby on rails.

banner

Uma palestra ideal para quem nunca teve contato nem com Ruby e nem com Rails, mas deseja saber por onde começar e porque estas tecnologias são tão faladas atualmente.

Então se você é desenvolvedor em outra linguagem ou webdesigner, não perca tempo e marque na sua agenda o dia 18-07-09 as 14:00.

O evento será gratuito, pelo Treina Tom. Então basta acessar o link abaixo no dia marcado as 14:00 e entrar no sistema. Não é necessário nada além de uma conexão banda larga e o flashplayer instalado.

http://www.treinatom.com.br/pt/eventos

Por que não unir o melhor banco de dados do mundo com a melhor plataforma de desenvolvimento web?. Uma união perfeita, RAILS + ORACLE.

Primeiramente você precisará instalar a biblioteca Ruby Oracle OCI8. O Ruby driver OCI8 Oracle fornece conectividade para versões de 8 a 10g através da norma Oracle Client software.

Faça o download da distribuição binária do condutor em www.rubyforge.org/projects/ruby-oci8 e instale manualmente via cmd, através do seguinte comando:

ruby ruby-oci8-0.1.16-mswin32.rb

Posteriormente você precisará instalar o adaptador oracle que é muito simples, siga abaixo o seguinte passo-a-passo:

1) Você pode tentar instalar via gem, digitando o seguinte código:

gem install activerecord-oracle-adapter ou
gem install activerecord-oracle-adapter –source http://gems.rubyforge.org

2) Caso não obteve êxito, você pode fazer o download direto do arquivo oracle_adapter.rb, e posteriormente salvá-lo no seguinte endereço:

C:\ruby\lib\ruby\gems\1.8\gems\activerecord-2.0.2\lib\active_record\connection_adapters

3) Por final, basta abrir e alterar seu arquivo database.yml com:

development:
adapter: oracle
database: my_sid
username: my_user
password: my_password

Pronto, seu rails já está configurado para acessar o banco de dados oracle.Simples não?.Assim como tudo no rails.

Espero ter ajudado, qualquer coisa, entre em contato.

Abraço,

Silva Developer

No rails também é muito simples criar consultas sql com múltiplos argumentos e parâmetros para acesso ao banco de dados.Veja abaixo como deve ficar sua linha de comando: 
SeuModel.find(:all, :conditions => ["origem like ? and destino like ? and tipochamado like ? and data like ?", params[:filorigem], params[:fildestino], params[:filtipo], params[:fildata]])

Comparando com uma consulta sql com apenas um argumento e um parâmetro, temos uma mudança, veja um exemplo comparativo:

SeuModel.find(:all, :conditions => ["nome like ?", "%#{params[:filtro]}%"])

Quando utilizamos vários argumentos e parâmetros temos que retirar as aspas da instrução dos parâmetros, pois senão o rails não conseguirá enxergar a quantidade correta de parâmetros que você está informando. 

Espero mais uma vez poder ter contribuido com meus amigos desenvolvedores.

Abraço,

Silva Developer 

As várias declarações de associações especificam o que se precisa para relacionamento entre tabelas. Elas acrescentam cada uma, uma série de métodos para o model, que ajudam a navegar entre objetos ligados. Vamos analisar estes em mais detalhe, no âmbito dos três tipos diferentes de intertable ligação.

O Active Record do rails suporta três tipos de relações entre as tabelas:

Um-para-um, um-para-muitos, e muitos para muitos. Você indicar estes relacionamentos adicionanado os seguintes métodos aos seus models:

has_one,
has_many;
belongs_to;
has_and_belongs_to_many;

1) Relacionamento um-para-um

Este relacionamento poderá existir entre encomendas e faturas, por exemplo: para cada
encomenda há, no máximo, uma fatura. Nós declaramos por dizer isto em Rails:

class Order < ActiveRecord::Base has_one :invoice class Invoice < ActiveRecord::Base belongs_to :o rder

Dica: belongs_to sempre fica na chave estrangeira.

2) Relacionamento um-para-muitos
Encomendas e linhas de itens têm um relacionamento um-para-muitos: pode haver qualquer um-para-muitos número de linhas de itens associados a uma encomenda particular. No Rails, para isso, temos o seguinte código:

class Order < ActiveRecord::Base has_many :line_items class LineItem < ActiveRecord::Base belongs_to :o rder

Dica: has_many sempre fica no plural.

3) Relacionamentos muitos-para-muitos

Podemos classificar os nossos produtos. Um produto pode pertencer a várias categorias,
e cada categoria pode conter vários produtos. Este é um exemplo de relacionamento de muitos-para-muitos, expresso no Rails da seguinte forma:

class Product < ActiveRecord::Base has_and_belongs_to_many :categories class Category < ActiveRecord::Base has_and_belongs_to_many :products

Finalizando os relacionamentos: Inserir campo de ligação nas tabelas “filhas”:

Não podemos nos esquecer que para finalizar e fechar o relacionamentos definidos nos models, devemos inserir nas tabelas “filhas”, um campo de referencia de acordo com a convenção do rails para que ele entenda que aquele campo é o campo de ligação.Por convenção este campo deve ter o nome do model seguido do sufixo _id, ou seja por exemplo, para um model Product, o campo de ligação teria que se chamar product_id. Basta apenas fazer isso, o resto deixe por conta de nosso querido rails.

Lembrete: Isto também pode ser feito na migration, através do código t.reference.

Iniciando

É com muito orgulho que apresento a vocês mais uma contribuição, este tutorial de como criar uma aplicação Rails 2.0 em poucos cliques, utilizando ferramenta RadRails.
Este tutorial utiliza, Ruby 1.8.6-26, Rails 2.0.2 e a IDE Aptana Studio RadRails 1.0.1, todos rodando sobre o Windows XP.Estou partindo do princípio de que você tenha os mesmos devidamente instalados em seu computador e que você tenha conhecimentos básicos necessários de Ruby e Rails.

Primeiro clique: Abrindo o RadRails

Abra a IDE Aptana Studio RadRails, para isso vá em Inicar / Programas / Aptana / Aptana Studio.

Pra quem ainda nunca utilizou o RadRails, eis uma breve explicação sobre seu ambiente:

Clique na imagem para vê-la ampliada

Segundo clique: Criando novo projeto

Para criar nosso projeto é bem simples, clique em File / New / Rails Project.

Em seguida irá abrir a seguinte janela de opções para seu novo projeto que será criado:

Veja em seguida que seu projeto foi gerado e o servidor iniciado automaticamente.

Terceiro clique: Configurando o acesso do seu projeto ao banco de dados

A primeira coisa que se deve fazer ao gerar o seu projeto, é definir o modo em que ele irá fazer acesso ao banco de dados.Para isso, abra o arquivo database.yml, que se encontra na estrutura do seu projeto rails, dentro da pasta config.

Quarto clique: Criando o banco de dados

Configurado o acesso do seu projeto ao banco de dados, já podemos mandar o Rails criar o nosso banco de dados de acordo com a configuração informada no arquivo database.yml, para isso, clique na guia Rake tasks, em seguida selecione o comando db:create:all e clique no botão GO.

Feito isso, abra sua ferramenta de visualização do Mysql e veja os banco de dados gerados pelo rails para seu projeto, conforme indicado no arquivo database.yml

Quinto clique: Criando um Model

Model é o código que envolve uma tabela em seu banco de dados, para gerar um módulo no RadRails é muito simples, clique na guia generators, na caixa de listagem generator, selecione a opção model.Em seguida, insira no campo Parameters, o nome que deseja dar ao seu model e por fim clique no botão GO.Lembrando que, por convenção e pelo fato de o Rails possuir um sistema automático de pluralização, ou seja, por exemplo, se você deseja criar um model para acessar a tabela de clientes, o nome do módulo deve ser cliente, no singular, assim, automaticamente o rails irá entender que a tabela a ser gerada e manipulada pelo model será clientes.

Veja como você pode acompanhar na guia Console, o andamento das ações e os comandos que estão sendo executados pelo rails, durante a geração do model.

Ao criar um model, o Rails cria dentro da pasta db, uma pasta com nome migrate, e um arquivo com nome predefinido: 001_create_nomedasuatabela.rb, arquivo este que será responsável por conter as definições que serão aplicadas na tabela que o model gerado manipulará, no nosso caso, o model cliente, manipulará a tabela clientes, e foi gerado o arquivo 001_create_clientes.rb, Através do Ruby Explorer, você pode visualizar e editar este arquivo.

Clique duas vezes sobre o nome do arquivo no ruby explorer, ao abrir o arquivo na tela principal do RadRails, insira a composição que você deseja em sua tabela, no nosso caso será assim:


class CreateClientes < ActiveRecord::Migration
  def self.up
    create_table :clientes do |t|
    t.string :razao, :fantasia, :endereco, :bairro, :cep,
             :cidade, :estado, :fone, :email, :cnpjcpf, :ierg
    t.timestamps
    end
  end

  def self.down
    drop_table :clientes
  end
end

O método self.up, cria uma tabela chamada clientes com 11 colunas:
* Id (gerado automaticamente chave primária);
* razao;
* fantasia;
* endereco;
* bairro;
* cep;
* cidade;
* estado;
* fone;
* email;
* cnpjcpf;
* ierg;

O método down, remove a tabela.

Sexto clique: Realizando migração

Alterada as definições de criação da tabela clientes no arquivo 001_create_clientes.rb, basta realizarmos a migração para que o Rails crie a tabela de acordo com as especificações inseridas no arquivo.Para fazer a migração, clique na guia rake tasks, na caixa de opções tasks, selecione o comando db:migrate e em seguida clique no botão GO.

Para conferir a migração, abra sua ferramenta de visualização do Mysql e veja a tabela gerada pelo rails:

Sétimo clique: Criando um controller

O controlador contém a código (lógica) da interação entre o ponto de vista e do model.Para criar um controlador, basta clicar na guia generators, na caixa de opções generate, selecione controller, no campo Parameters insira o nome do controlador e por fim clique em GO.

Após criado o controlador, você poderá visualizado e editá-lo no ruby explorer, dentro da pasta app/controllers.

No controlador é inserido os métodos (actions).Iremos inserir os seguintes métodos (actions) no controlador do nosso exemplo, veja o código:


class ClientesController < ApplicationController
  protect_from_forgery :except => []

  def index     

    render :text => "Home - Página principal"

  end

  def consulta

    @clientes = Cliente.find(:all)

    render :x ml => @clientes.to_xml

  end

end

No código acima, é criado 2 métodos (actions), o index que retornará um texto quando for invocado, e o consulta, que retornará em formato xml todos os registros da tabela clientes.

Repare que o código protect_from_forgery :except => [:cadastra,:atualiza,:deleta] antes da criação dos métodos, pois na nova versão do ruby para evitar acessos indevidos em seu banco, ele foi incrementado com uma clausula de segurança que por padrão, seu estado é bloqueado para tudo, colocando este comando, você informará ao Rails que ele poderá abrir exceções para os métodos discriminados entre colchetes, podendo assim, os mesmos fazerem inserções e alterações em seus dados.

Oitavo clique: Criando rotas (routes.rb)

Criado seu controlador, devemos fazer o roteamento das actions no nosso arquivo de rotas, routes.rb, ele se encontra dentro da pasta config.Você poderá visualizá-lo e editá-lo através do ruby explorer:

A ordem no mapeamento do projeto deve ser, primeiro o caminho, depois o nome do controlador e o nome da action.Nele devemos inserir os seguintes códigos:



  map.connect 'clientes/index',
              :controller => 'clientes',
              :action => 'index'

  map.connect 'clientes/consulta',
              :controller => 'clientes',
              :action => 'consulta'

Nono clique: Iniciando ou reiniciando o servidor

Depois de criado as rotas e para que você possa visualizar e testar seu controlador e suas actions, você precisa iniciar ou reiniciar o servidor do seu projeto, para isso, clique na guia Servers e posteriormente no botão start server ou restart server, se caso o seu servidor já estiver sido iniciado anteriormente.Ao fazer isto, você deve lembrar-se do host e da porta em que o servidor foi iniciado.

Décimo clique: Testando o controlador e a action

Finalmente agora podemos visualizar e testar o funcionamento do nosso controlador e da nossas actions, depois de iniciado ou reiniciado o servidor do seu projeto, lembrando-se do host e da porta, a estrutura padrão da url do seu projeto é http://host:porta/nomecontrolador/nomeaction, sabendo disso, abra seu navegador e digite nele o endereço de suas actions:

*Para acessar a action Index: http://localhost:3000/clientes/index

*Para acessar a action consulta: http://localhost:3000/clientes/consulta