Tutorial Ruby on Rails
O que รฉ Ruby?
Ruby รฉ uma linguagem de programaรงรฃo de alto nรญvel, interpretada e orientada a objetos. ร uma linguagem dinรขmica de cรณdigo aberto que tem uma grande comunidade por trรกs dela. Ruby foi projetado para simplicidade e produtividade. Ele incentiva a escrita de cรณdigo de software primeiro para humanos e depois para computador. Foi criado por Yukihiro Matsumoto no Japรฃo em 1995.
O que รฉ trilhos?
Rails รฉ uma estrutura de desenvolvimento escrita em Ruby para construรงรฃo de aplicaรงรตes web. Ele foi criado como base do aplicativo Basecamp e entรฃo lanรงado como um software de cรณdigo aberto em 2004. Rails oferece muitos recursos e funcionalidades padrรฃo integrados, o que o torna uma opรงรฃo adequada para prototipagem e desenvolvimento de MVP.
Foi criado por David Heinemeier Hasson, popularmente conhecido como DHH. ร uma das ferramentas mais influentes e populares para a construรงรฃo de aplicaรงรตes web. ร usado por alguns dos sites favoritos como Airbnb, Github, Shopify, etc.
Por que Trilhos?
Aqui estรฃo os prรณs/benefรญcios de usar Rails:
- Rails รฉ empacotado como uma gem Ruby e vocรช pode usรก-lo para construir uma variedade de aplicaรงรตes.
- Ele permite que vocรช crie aplicativos da web regulares, aplicativos de comรฉrcio eletrรดnico, sistema de gerenciamento de conteรบdo e muito mais.
- Rails รฉ um framework full-stack que inclui tudo que vocรช precisa para criar uma aplicaรงรฃo web baseada em banco de dados, usando o padrรฃo Model-View-Controller.
- Isso significa que todas as camadas sรฃo construรญdas para funcionar perfeitamente juntas com menos cรณdigo. Requer menos linhas de cรณdigo do que outras estruturas.
Como baixar e instalar Ruby em Windows
O processo de instalaรงรฃo dependerรก do seu sistema operacional. Vocรช instalarรก o Ruby em Windows, Mac e Linux.
Passo 1) Baixe o Rubyinstaller
A maneira mais fรกcil de instalar Ruby em seu Windows computador รฉ atravรฉs do Ruby Installer, que vocรช pode baixar em https://rubyinstaller.org/.
Tudo que vocรช precisa fazer รฉ executar o instalador baixado.
Passo 2) Clique no instalador baixado
Double-clique no instalador baixado 'rubyinstaller-2.4.1-2-x64.exe'.
Passo 3) Aceite a licenรงa
Selecione o botรฃo de opรงรฃo 'Aceito a licenรงa' e clique no botรฃo 'Avanรงar'. Isso deve levar vocรช ร prรณxima figura abaixo:
Passo 4) Marque as duas primeiras caixas de seleรงรฃo
Marque as duas primeiras caixas de seleรงรฃo para facilitar a execuรงรฃo de scripts Ruby.
Clique no botรฃo 'Instalar' para iniciar a instalaรงรฃo. Vocรช deverรก ver a figura abaixo quando a instalaรงรฃo for concluรญda.
Passo 5) Clique em Finish
Nรฃo desmarque a opรงรฃo da caixa de seleรงรฃo que instala o MSYS2. Clique em โConcluirโ para concluir a instalaรงรฃo e uma janela de prompt de comando mostrada na Figura abaixo serรก exibida.
Passo 6) Instala MSYS2
Esta etapa instala o MSYS2, uma plataforma de construรงรฃo que possui um gerenciador de pacotes para fรกcil instalaรงรฃo de pacotes em Windows.
Pressione Enter para instalar todos os componentes, pois todos eles sรฃo necessรกrios para ter um ambiente de desenvolvimento Ruby on Rails tranquilo para trabalhar. Windows.
Instalando Trilhos
Vocรช deve ter o Ruby instalado da seรงรฃo anterior e agora instalarรก o Rails. Vocรช pode instalar o Rails usando um pacote de Instalador do Rails, mas o problema รฉ que vocรช nรฃo obtรฉm a versรฃo mais recente dos pacotes necessรกrios.
Se vocรช jรก possui o Ruby mais recente e um conjunto bรกsico de RubyGems e extensรตes necessรกrios instalados. Tudo o que vocรช precisa fazer agora รฉ executar o seguinte comando no prompt de comando para obter o Rails em seu sistema: 'gem install Rails.'
Vocรช tambรฉm precisarรก instalar Node.js se vocรช ainda nรฃo o possui, porque algumas bibliotecas das quais o Rails depende exigem um Javascript tempo de execuรงรฃo para funcionar corretamente. Vocรช pode obter o nรณ em https://nodejs.org.
ร uma abordagem mais comum e preferida para o desenvolvimento em Windows. A comunidade Rails usa um Windows Subsistema para Linux que fornece um ambiente GNU/Linux com ferramentas de linha de comando, utilitรกrios e aplicativos comuns diretamente no Windows.
Instalando Ruby no Mac
Seu Mac jรก tem Ruby prรฉ-instalado. No entanto, a versรฃo prรฉ-instalada pode ser antiga e, portanto, vocรช precisarรก instalar uma versรฃo nova/mais recente.
A maneira mais fรกcil de fazer isso รฉ usando um gerenciador de pacotes como Homebrew. Talvez vocรช precise primeiro instalar o Homebrew executando o comando abaixo no Terminal.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)
Isso exibirรก um aviso e solicitarรก que vocรช insira sua senha. Digite sua senha do Mac (vocรช nรฃo verรก os caracteres enquanto digita). Basta pressionar 'Enter' quando terminar de digitar sua senha. Em seguida, execute este comando simples do Homebrew para instalar o Ruby no seu Mac.
brew install ruby
E tambรฉm execute este comando:
echo "export PATH="/usr/local/bin:/usr/local/sbin:$PATH >> ~/.bash_profile
Para definir esta instalaรงรฃo do Ruby como o Ruby padrรฃo para rodar em seu sistema e nรฃo o Ruby prรฉ-instalado.
Para confirmar se a instalaรงรฃo foi bem-sucedida, vocรช pode executar o seguinte no Terminal
ruby --version
isso imprimirรก o nรบmero da versรฃo do Ruby que vocรช instalou. A saรญda serรก algo como
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]
Instalando Ruby em Ubuntu (Linux)
A maneira mais fรกcil de instalar Ruby em seu Ubuntu sistema รฉ atravรฉs do gerenciador de pacotes apt. Vocรช precisa executar os seguintes comandos no Terminal para instalar o Ruby mais recente do Ubuntu repositรณrios.
- atualizaรงรฃo do sudo apt โ Isso atualizarรก o padrรฃo Ubuntu repositรณrios
- sudo apt instalar ruby-full โ Ele irรก baixar e instalar o Ruby mais recente
Para confirmar se a instalaรงรฃo foi bem-sucedida, vocรช pode executar o seguinte 'ruby โversรฃo,' isso imprimirรก a versรฃo Ruby que vocรช instalou.
Instalando Rails em Ubuntu (Linux)
Vocรช deve seguir as etapas abaixo para instalar o Rails com sucesso em sua mรกquina Linux.
Passo 1) Atualize o gerenciador de gemas do seu computador executando 'atualizaรงรฃo de gema โsistema' no Terminal ou prompt de comando.
Passo 2) Execute 'trilhos de instalaรงรฃo de gemas' para instalar a versรฃo mais recente do Rails em seu computador.
Passo 3) Vocรช deve instalar o bundler gem para facilitar o gerenciamento de dependรชncias de gem do aplicativo Rails. Correr 'pacote de instalaรงรฃo gem' para obtรช-la.
Dois princรญpios do Rails
Rails segue princรญpios bรกsicos de design de software e incentiva vocรช a usar esses princรญpios tambรฉm.
Os dois mais comuns sรฃo:
- Nรฃo se repita (DRY) โ isso faz com que vocรช escreva um cรณdigo conciso, consistente e de fรกcil manutenรงรฃo.
- Convenรงรฃo sobre configuraรงรฃo โ Rails รฉ prรฉ-configurado para usar padrรตes sensatos que se adaptam ao uso mais comum. Isso torna o desenvolvimento do seu aplicativo mais rรกpido e vocรช tambรฉm tem menos cรณdigo para manter.
Rails โ Estruturas de Arquivos de Projeto
Com o Rails agora instalado em seu sistema vamos criar uma aplicaรงรฃo Rails! Aprenderemos exemplos de Ruby on Rails e como criar um aplicativo de lista de tarefas neste tutorial de Ruby on Rails. Execute o seguinte comando 'trilhos novo todo_app' no seu Terminal para criar o aplicativo.
Este comando cria um diretรณrio chamado 'todo_app' no diretรณrio atual com a estrutura de pastas bรกsica de uma aplicaรงรฃo web Rails, conforme mostrado na figura abaixo:
Vocรช percorrerรก os diretรณrios principais neste exemplo de Ruby on Rails.
app โ Este diretรณrio agrupa usando diferentes subdiretรณrios para a UI/layout (visualizaรงรตes e auxiliares), o controlador (arquivos de controladores) e os modelos (lรณgica de negรณcios/aplicaรงรฃo).
aplicativo/controladores โ Este diretรณrio armazena arquivos de controlador usados โโpelo Rails para lidar com solicitaรงรตes do cliente.
aplicativo/recursos โ Contรฉm arquivos estรกticos, necessรกrios para o front-end da aplicaรงรฃo agrupados em pastas de acordo com seu tipo โ JavaScript arquivos, imagens e folhas de estilo.
aplicativo/ajudantes โ Este subdiretรณrio contรฉm funรงรตes auxiliares que tornam o modelo, a visualizaรงรฃo e a lรณgica do controlador do seu aplicativo focados, pequenos e organizados.
aplicativo/modelos โ Contรฉm arquivos
que modelam o banco de dados do seu aplicativo. As classes de modelo facilitam muito o trabalho com o banco de dados.
aplicativo/visualizaรงรตes โ Esses arquivos de modelo/layout de retenรงรฃo com os quais o usuรกrio do seu aplicativo interage. Os modelos sรฃo uma combinaรงรฃo de HTML e dados do banco de dados.
caixa โ Ele contรฉm scripts Rails que iniciam seu aplicativo. Tambรฉm pode incluir outros scripts usados โโpara configurar e atualizar o aplicativo.
Configuraรงรฃo - Isso contรฉm arquivos de configuraรงรฃo โ banco de dados.yml, ambiente.rb, rotas.rb, etc. que seu aplicativo precisa para ser executado.
DB - Este diretรณrio contรฉm arquivos/scripts que sรฃo usados โโpara gerenciar o banco de dados do seu aplicativo.
lib โ Este diretรณrio contรฉm um mรณdulo estendido para seu aplicativo.
registro - Contรฉm arquivos de log โ server.log, desenvolvimento.log, teste.log e produรงรฃo.log, etc., que sรฃo usados โโpara depurar ou monitorar seu aplicativo.
pรบblico - Este diretรณrio contรฉm arquivos estรกticos e ativos compilados, como arquivos HTML, Javascript arquivos, imagens e folhas de estilo.
teste - Este diretรณrio contรฉm arquivos de teste que vocรช escreve para testar a funcionalidade do seu aplicativo.
tmp โ Este diretรณrio contรฉm arquivos temporรกrios como arquivos de cache e pid.
fornecedor - Este diretรณrio contรฉm bibliotecas de terceiros.
Arquivo Gem โ Este arquivo especifica quais sรฃo seus requisitos bรกsicos de gem para executar seu aplicativo da web. Vocรช pode agrupar as gemas em desenvolvimento, teste ou produรงรฃo e o Rails saberรก quando incluir cada gema.
Gemfile.lock - Ao contrรกrio do Gemfile que lista explicitamente as gemas que vocรช deseja em seu aplicativo, Gemfile.lock contรฉm adicionalmente outras gemas das quais dependem aquelas que vocรช lista no Gemfile e que sรฃo instaladas automaticamente para satisfazer as dependรชncias.
Leiame.md โ Vocรช usa esse arquivo para compartilhar detalhes essenciais sobre seu aplicativo, como o que o aplicativo faz, como instalar e executar o aplicativo.
Arquivo rake โ Este arquivo contรฉm vรกrias definiรงรตes de tarefas rake, o que ajuda a automatizar as tarefas diรกrias de administraรงรฃo de sua aplicaรงรฃo.
config.ru โ Este รฉ um arquivo de configuraรงรฃo do Rack que fornece uma interface para o servidor web iniciar sua aplicaรงรฃo.
Mude o diretรณrio para o 'todo_app' diretรณrio Rails gerado e executado 'servidor Rails' para iniciar o aplicativo. Tipo localhost: 3000 na barra de endereรงo do seu navegador, vocรช deverรก ver a figura abaixo se tudo correu bem.
Esta รฉ a pรกgina inicial padrรฃo do seu aplicativo e vocรช mudarรก isso na seรงรฃo posterior deste tutorial Ruby on Rails. Vocรช pode parar o servidor pressionando 'Ctrl-C'.
Rails โ Gerar comandos
O comando gerar do Rails faz uso de modelos para criar muitas coisas รบteis em sua aplicaรงรฃo. Vocรช pode usar esses geradores para economizar muito tempo.
Ajuda escrevendo cรณdigo padrรฃo, cรณdigo necessรกrio para que seu aplicativo da web funcione. Vocรช pode correr 'trilhos geram' sozinho no prompt de comando ou Terminal para ver uma lista de geradores disponรญveis conforme mostrado abaixo:
Vocรช tambรฉm pode correr 'rails gera โcomandoโ' para ver uma descriรงรฃo do que o comando faz. Ele oferece opรงรตes convenientes que podem ser executadas com o comando e exemplo de uso. A figura abaixo mostra a saรญda da execuรงรฃo'rails geram controlador':
Vocรช usarรก o comando rails generate scaffold para criar automaticamente o modelo, a visualizaรงรฃo e o controlador para o aplicativo de lista de tarefas que vocรช estรก construindo. Correr'rails gera andaime todo_list tรญtulo:string descriรงรฃo: texto' no seu Terminal (verifique se vocรช ainda estรก no diretรณrio todo_app).
Isso criarรก uma interface da web CRUD (criar, ler, atualizar e excluir) completa para a tabela TodoLists.
Outro comando รบtil para saber รฉ 'trilhos destroem' inverte o que quer que seja 'trilhos geramโฆ' faz.
Trilhos โ roteamento
O sistema de roteamento Rails, rails router, lida com todas as solicitaรงรตes recebidas em sua aplicaรงรฃo web. Ele faz isso examinando a URL das solicitaรงรตes recebidas e, em seguida, mapeia cada solicitaรงรฃo para a aรงรฃo do controlador responsรกvel por tratรก-la, usando uma sintaxe especial especificada no arquivo de rotas (config / routes.rb).
O arquivo de rotas ajuda a controlar todos os aspectos da URL do seu aplicativo web. Por padrรฃo, o Rails usa um design RESTful baseado no estilo arquitetural REST, que fornece um mapeamento entre verbos HTTP e solicitaรงรตes (URLs) para aรงรตes do controlador.
O arquivo de rotas foi gerado quando vocรช executou 'trilhos novos' em uma seรงรฃo anterior deste tutorial. Continuando com o aplicativo Todo que vocรช estรก construindo, execute o seguinte'rails db:migrar' (vocรช saberรก o que isso faz em breve)
Na linha de comando, certifique-se de ainda estar na raiz do aplicativo (o diretรณrio todo_app).
Em seguida, reinicie o servidor com 'servidor Rails'. Tipo http://localhost:3000/todo_lists/ no seu navegador e pressione Enter. Vocรช deve retornar uma pรกgina da web conforme mostrado na figura abaixo do exemplo Ruby on Rails:
Esta รฉ a visualizaรงรฃo da lista de tarefas que o comando scaffold gerou e รฉ controlada pela aรงรฃo de รญndice do TodoListsController.
Vรก em frente e adicione uma lista de tarefas clicando em 'Nova lista de tarefas' na pรกgina, vocรช deverรก obter a pรกgina conforme mostrado abaixo:
Observe que o URL foi alterado para http://localhost:3000/todo_lists/new. Esta รฉ a pรกgina para criar uma nova lista de tarefas e รฉ controlada pelo novo mรฉtodo/aรงรฃo do TodoListsController.
Insira o tรญtulo e a descriรงรฃo da sua lista de tarefas no formulรกrio e clique no botรฃo Criar lista de tarefas. O URL deve mudar para http://localhost:3000/todo_lists/1, mostrado na figura abaixo do exemplo de cรณdigo Ruby on Rails:
Esta รฉ a pรกgina de exibiรงรฃo de uma lista de tarefas e รฉ controlada pelo mรฉtodo/aรงรฃo show do TodoListsController. Se vocรช voltar para http://localhost:3000/todo_lists/, agora vocรช deverรก ver a figura abaixo com uma nova lista de tarefas adicionada:
Rails foi capaz de mapear as vรกrias solicitaรงรตes (URLs) para a aรงรฃo correspondente de TodoListsController usando a definiรงรฃo de rota em config/routes.rb.
Se vocรช der uma olhada neste arquivo, verรก uma รบnica linha 'recursos: listas de tarefas', รฉ a maneira padrรฃo do Rails de escrever rotas tranquilas. Esta รบnica linha cria sete rotas, todas mapeadas para o controlador TodoLists.
Por convenรงรฃo, a aรงรฃo de cada controlador tambรฉm รฉ mapeada para uma operaรงรฃo CRUD (Criar, Ler, Atualizar e Excluir) especรญfica no banco de dados.
Vocรช pode correr 'rotas de ancinho' na sua linha de comando para ver as diversas rotas disponรญveis no seu aplicativo. A figura abaixo mostra a saรญda da execuรงรฃo 'rotas ferroviรกrias' em sua linha de comando/terminal.
Trilhos โ visualizaรงรตes
A camada View รฉ um dos componentes do paradigma MVC e รฉ responsรกvel por gerar resposta HTML para cada solicitaรงรฃo da sua aplicaรงรฃo. Por padrรฃo, o Rails usa ERB (Embedded Ruby), que รฉ um poderoso sistema de templates para Ruby.
O ERB torna a escrita de modelos fรกcil e sustentรกvel, combinando texto simples com cรณdigo Ruby para substituiรงรฃo de variรกveis โโe controle de fluxo. Um modelo ERB possui extensรฃo .html, .erb ou .erb.
Vocรช usarรก principalmente uma combinaรงรฃo de apenas dois marcadores de tag, cada um dos quais faz com que o cรณdigo incorporado seja processado e manipulado de uma maneira especรญfica.
Uma etiqueta com sinal de igual '<%= %>' indica que o cรณdigo incorporado รฉ uma expressรฃo e que o resultado do cรณdigo deve ser substituรญdo pelo renderizador ao renderizar o modelo.
A outra tag sem sinal de igual '<% %>' indica ao renderizador que o resultado do cรณdigo nรฃo deve ser substituรญdo/impresso ao renderizar o modelo.
Cada controlador em sua aplicaรงรฃo Rails possui um subdiretรณrio correspondente em aplicativo/visualizaรงรตes, e cada aรงรฃo/mรฉtodo em um controlador possui um arquivo .html e .erb correspondente neste diretรณrio.
Dรช uma olhada nos aplicativos/visualizaรงรตes do aplicativo de tarefas que vocรช estรก criando. Vocรช encontrarรก um subdiretรณrio chamado 'listas_de_tarefas' dentro deste subdiretรณrio .html.erb arquivos com nomes correspondentes ร s aรงรตes/mรฉtodos no Listas de tarefas controlador.
Rails โ ActiveRecord, padrรฃo de registro ativo e ORM
ActiveRecord รฉ a implementaรงรฃo Ruby do padrรฃo Active Record, que รฉ um padrรฃo simples onde uma classe representa uma tabela e uma instรขncia da classe representa uma linha nessa classe.
ActiveRecord รฉ popularmente conhecido como ORM (Mapeamento Relacional de Objetos), uma tรฉcnica que permite gerenciar seu banco de dados usando uma linguagem com a qual vocรช se sente mais confortรกvel. ร independente de banco de dados, portanto vocรช pode alternar facilmente entre bancos de dados (por exemplo SQLite, MySQL, PostgreSQL, Servidor SQL, Oracle, etc.). Este conjunto รฉ mais adequado aos requisitos de sua aplicaรงรฃo com o mesmo cรณdigo/lรณgica.
Entรฃo, se vocรช deseja obter um array contendo uma listagem de todas as listas de tarefas em seu aplicativo, em vez de escrever cรณdigo para iniciar uma conexรฃo com o banco de dados, fazer algum tipo de consulta SQL SELECT e converter esses resultados em um variedade.
Para isso, basta digitar 'TodoList.all' e o Active Record fornece o array preenchido com objetos TodoList com os quais vocรช pode brincar como quiser.
Tudo que vocรช precisa fazer รฉ definir a configuraรงรฃo correta em config / database.yml, e o Active Record resolverรก todas as diferenรงas entre os vรกrios sistemas de banco de dados. Entรฃo, quando vocรช muda de um para outro, nรฃo precisa pensar nisso.
Vocรช se concentra em escrever cรณdigo para seu aplicativo, e o Active Record pensarรก nos detalhes de baixo nรญvel para conectรก-lo ao seu banco de dados. O Active Record utiliza convenรงรตes de nomenclatura para criar o mapeamento entre modelos e tabelas de banco de dados.
Rails pluraliza os nomes das classes do seu modelo para encontrar a tabela de banco de dados correspondente. Portanto, para uma classe TodoList, o ActiveRecord criarรก uma tabela de banco de dados chamada TodoLists.
Trilhos โ Migraรงรตes
A migraรงรฃo Rails รฉ simplesmente um script que vocรช usa para editar o banco de dados do seu aplicativo. Ele รฉ usado para configurar ou alterar seu banco de dados e evita escrever cรณdigo SQL manualmente para fazer isso.
Ele usa Ruby para definir alteraรงรตes no esquema do banco de dados e possibilita usar o controle de versรฃo para manter seu banco de dados sincronizado.
As migraรงรตes Rails usam uma linguagem especรญfica de domรญnio (DSL) Ruby. Isso atua como uma abstraรงรฃo e possibilita usar ou alterar seu mecanismo de banco de dados com base em seus requisitos.
Eles podem ser compartilhados com qualquer pessoa que trabalhe no aplicativo e tambรฉm podem ser revertidos para desfazer quaisquer alteraรงรตes no banco de dados. Este รฉ um mecanismo de alta seguranรงa, pois vocรช nรฃo precisa se preocupar em causar danos permanentes ao seu banco de dados.
Rails โ Associaรงรตes ActiveRecord
Uma conexรฃo entre dois modelos ActiveRecord รฉ conhecida como associaรงรฃo. A associaรงรฃo torna muito mais fรกcil realizar operaรงรตes nos diferentes registros do seu cรณdigo. Pode ser dividido em quatro categorias: โ
Um a um: โ Isso indica que um registro contรฉm precisamente uma instรขncia de outro modelo. Um bom exemplo รฉ o perfil do usuรกrio. Um usuรกrio possui apenas um perfil. Ele usa tem um palavra chave.
Um para muitos: โ Esta รฉ a associaรงรฃo mais comum e indica que um modelo possui zero ou mais instรขncias de outro modelo. Seu uso tem _muitos palavra-chave para denotar esta associaรงรฃo.
Muitos para muitos: โ Essa associaรงรฃo รฉ um pouco mais complicada e o ActiveRecord oferece duas maneiras de lidar com isso. Usando o tem_e_pertence_a_muitos e tem muitos, que lhe dรก acesso ร relaรงรฃo definida em uma tabela separada.
Polimรณrfico Um para Muitos:- Esta รฉ uma associaรงรฃo mais avanรงada disponรญvel para vocรช no Rails. Vocรช pode usรก-lo para definir um modelo que pode pertencer a muitos modelos diferentes em uma รบnica associaรงรฃo.
Rails โ Validaรงรตes ActiveRecord
A validaรงรฃo ajuda a garantir que vocรช tenha dados corretos porque trabalhar com dados errados รฉ uma coisa horrรญvel e pode custar-lhe dinheiro e negรณcios.
A validaรงรฃo tambรฉm fornece uma camada extra de seguranรงa para seu aplicativo contra usuรกrios mal-intencionados que obtรชm acesso ร s informaรงรตes em seu banco de dados. Rails oferece uma รณtima API de auxiliares de validaรงรฃo no ActiveRecord para manter seu banco de dados limpo, seguro e livre de erros.
As validaรงรตes do ActiveRecord sรฃo executadas em objetos de modelo antes de serem salvos no banco de dados, tornando-os mais confiรกveis โโe tambรฉm as melhores prรกticas a serem seguidas na construรงรฃo de seu aplicativo.
Os seguintes mรฉtodos ActiveRecord evocam validaรงรตes quando usados โโou chamados em objetos de modelo โ crie, crie!, salve, salve!, atualize e atualize!. Aqueles com um estrondo (crie!, salve! e atualize!) gera uma exceรงรฃo se um registro for invรกlido enquanto nรฃo for vรกlido.
Os auxiliares de validaรงรฃo do ActiveRecord mais comuns ร sua disposiรงรฃo sรฃo: โ
Confirmaรงรฃo:โ Este auxiliar de validaรงรฃo รฉ รบtil para validar que dois campos tรชm a mesma entrada. por exemplo, senha e confirmaรงรฃo de senha, รฉ usado em conjunto com o auxiliar de validaรงรฃo de presenรงa.
Presenรงa:โ Isso verifica se o campo nรฃo estรก vazio.
exclusividade: garante um valor รบnico para um campo, por exemplo, nome de usuรกrio
Comprimento:- Para impor um limite no comprimento de caracteres de um campo
Vocรช tambรฉm pode criar sua validaรงรฃo personalizada usando o mรฉtodo validar e passando a ele o nome do mรฉtodo de validaรงรฃo personalizado.
Vocรช pode verificar o modelo erro objeto para descobrir o porquรช de uma validaรงรฃo. Esperamos que vocรช tenha algumas ideias para tornar seu aplicativo mais restrito e mais seguro para permitir apenas dados seguros em seu banco de dados.
Trilhos โ ActionController
O controlador Rails รฉ o centro da sua aplicaรงรฃo web. Facilita e coordena a comunicaรงรฃo entre o usuรกrio, os modelos e as visualizaรงรตes.
Suas classes de controlador herdam do ApplicationController, que contรฉm cรณdigo que pode ser executado em todos os outros controladores e herda da classe ActionController.
O controlador fornece o seguinte para sua aplicaรงรฃo:
- Ele roteia solicitaรงรตes externas para aรงรตes internas
- Ele consegue armazenar em cache, aumentando o desempenho do seu aplicativo
- Ele gerencia mรฉtodos auxiliares que ampliam os recursos dos modelos de visualizaรงรฃo. Ele tambรฉm gerencia as sessรตes dos usuรกrios, proporcionando-lhes uma experiรชncia tranquila ao usar seu aplicativo.
Trilhos โ Configuraรงรตes
Vocรช pode configurar os vรกrios componentes, como inicializadores, ativos, geradores, middlewares, etc. Usando inicializadores de aplicativos Rails e arquivos de configuraรงรฃo no diretรณrio de configuraรงรฃo. Arquivos como config/application.rb, config/environments/development.rb e config/environments/test.rb etc. Vocรช tambรฉm pode configurar configuraรงรตes personalizadas para seu aplicativo.
Trilhos โ Depuraรงรฃo
ร medida que vocรช desenvolve seu aplicativo, chegarรก um momento em que vocรช precisarรก depurar seu cรณdigo. Rails facilita isso usando a gem byebug. Vocรช pode iniciar uma sessรฃo de depuraรงรฃo colocando a palavra-chave 'byebeg' em qualquer lugar do cรณdigo do seu aplicativo.
Isso interromperรก temporariamente a execuรงรฃo nesse ponto. A gem byebug fornece vรกrios comandos para usar. Os mais รบteis sรฃo:
- Prรณximo: comando que permite ir para a prรณxima linha de cรณdigo, ignorando todos os mรฉtodos invocados pela execuรงรฃo da linha atual.
- passo: รฉ semelhante ao comando 'next', mas farรก com que vocรช entre em cada um dos comandos invocados.
- quebrar: isso interrompe a execuรงรฃo do cรณdigo.
- continuar continua o cรณdigo de execuรงรฃo.
Existem outras gemas de depuraรงรฃo disponรญveis, como 'pry', e todas oferecem funcionalidades semelhantes, mas com sintaxe ligeiramente diferente. As gemas de depuraรงรฃo nรฃo devem ser usadas na produรงรฃo, pois isso representa riscos para o seu aplicativo e uma experiรชncia ruim para os usuรกrios do aplicativo.
Existem arquivos de log que vocรช pode inspecionar em busca de erros na produรงรฃo e tratรก-los. Alรฉm disso, vocรช deve seguir uma abordagem TDD (desenvolvimento orientado a testes) ao desenvolver seu aplicativo para garantir que tudo funcione bem antes de implantar na produรงรฃo.
Resumo
- Ruby รฉ uma linguagem de programaรงรฃo pura orientada a objetos
- Ruby tem uma sintaxe elegante que รฉ fรกcil de ler e escrever.
- Rails รฉ um framework de desenvolvimento, escrito em Ruby, para construรงรฃo de aplicaรงรตes web
- O processo de instalaรงรฃo dependerรก do seu sistema operacional.
- Rails รฉ empacotado como uma gem Ruby e vocรช pode usรก-lo para construir uma variedade de aplicaรงรตes.
- Vocรช criarรก um aplicativo de lista de tarefas neste tutorial, execute o seguinte incomm'n'n' 'rails netoda'p'p'p' em seu Terminal R para criar o aplicativo.
- O comando gerar do Rails faz uso de modelos para criar muitas coisas รบteis em sua aplicaรงรฃo.
- O sistema de roteamento Rails, rails router ajuda vocรช a lidar com todas as solicitaรงรตes recebidas em sua aplicaรงรฃo web.
- A camada View รฉ um dos componentes do paradigma MVC e รฉ responsรกvel por gerar resposta HTML para cada solicitaรงรฃo da sua aplicaรงรฃo.
- ActiveRecord รฉ a implementaรงรฃo Ruby do padrรฃo Active Record.
- A migraรงรฃo Rails รฉ simplesmente um script que vocรช usa para editar o banco de dados do seu aplicativo.
- Uma conexรฃo entre dois modelos ActiveRecord รฉ conhecida como associaรงรฃo.
- A validaรงรฃo ajuda a garantir que vocรช tenha dados corretos porque trabalhar com dados errados รฉ uma coisa horrรญvel e pode custar-lhe dinheiro e negรณcios.
- O controlador Rails ajuda a facilitar e coordenar a comunicaรงรฃo entre o usuรกrio, os modelos e as visualizaรงรตes.
- Rail ajuda vocรช a configurar os vรกrios componentes, como inicializadores, ativos, geradores, middlewares, etc.













