> For the complete documentation index, see [llms.txt](https://carolsprak.gitbook.io/ruby-on-rails-para-iniciantes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://carolsprak.gitbook.io/ruby-on-rails-para-iniciantes/criar-um-projeto-em-ruby-on-rails.md).

# 2. Criar um projeto em Ruby on Rails

## 1. Criar um projeto em Rails

Verificar se há alguma versão do rails instalado na máquina. Abrir um terminal do seu computador:

```
C:\Projetos>rails -v
```

Acessar o diretório um diretório qualquer no terminal e executar o seguinte comando:\
\
Por exemplo:

```
C:\Projetos>rails new computacaonapratica
```

Abrir o diretório criado "computacaonapratica" e visualizar todos os arquivos criados.

![](/files/HL4QWhf4r3eJCxq8uHSN)

## 2. Acessar o diretório do projeto criado

No terminal entrar no diretório criado e instale o bundle no projeto:\
\
Por exemplo:

```
C:\Projetos>cd computacaonapratica
```

Abrir o arquivo Gemfile em um editor de texto, alterar a gem sqlite3 para:

```
gem 'sqlite3', '< 1.4'
```

No terminal entrar no diretório criado e instale o bundle no projeto:<br>

```
C:\Projetos\computacaonapratica>bundle install 
```

\
Descrição de cada pasta criada no projeto:

| Pasta               | Propósito                                                                                                                                                                                                                                                                                                                                                                   |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| app/                | Contém os controllers, models, views, helpers, mailers e assets.                                                                                                                                                                                                                                                                                                            |
| bin/                | Contém o rails script que inicia sua aplicação e pode conter outros scripts configuráveis: update, deploy ou executar sua aplicação.                                                                                                                                                                                                                                        |
| config/             | Configura sua aplicação relacionado as rotas, banco de dados, etc.                                                                                                                                                                                                                                                                                                          |
| config.ru           | Usado para iniciar a aplicação.                                                                                                                                                                                                                                                                                                                                             |
| db/                 | Contém o esquema da sua base de dados e também as migrations.                                                                                                                                                                                                                                                                                                               |
| GemfileGemfile.lock | Este arquivo permite especificar quais "gems" são dependentes na sua aplicação Rails. Estes arquivos são usados no momento de executar o Bundler gem.                                                                                                                                                                                                                       |
| lib/                | Módulos de extensão da aplicação, novas bibliotecas prontas para serem incluídadas na aplicação.                                                                                                                                                                                                                                                                            |
| log/                | Arquivos de log da aplicação.                                                                                                                                                                                                                                                                                                                                               |
| public/             | Diretório onde o seu conteúdo estará disponível na aplicação, como arquivos de imagem.                                                                                                                                                                                                                                                                                      |
| app/assets          | Diretório onde se encontram todos os conteúdos de configuração para o layout da página: javascripts, css, imagens.                                                                                                                                                                                                                                                          |
| app/controllers     | <p>Diretório onde se encontram os controladores da aplicação. Para cada página que houver uma ação dinâmica entre o usuário e a aplicação.<br><br>É necessário criar um arquivo "users\_controller.rb" com os respecitivos métodos que irão executar a ação e redirecionar o usuário para uma outra página ou apenas exibir uma mensagem de sucesso/alerta.</p>             |
| app/models          | <p>Diretório onde se encontram os modelos da aplicação. Para cada tabela criada no banco de dados é criado automaticamente uma classe Model.<br><br>Por exemplo: "user.rb", neste arquivo irá conter todos as referências de relacionamento com outras tabelas (um-para-um, um-para-muitos), validaação das colunas, se podem ser nulas ou se possuem um valor inicial.</p> |
| app/views           | <p>Diretório onde se encontram as páginas da aplicação. Nestas páginas será possível o usuário interagir com a aplicação, através de formulários. É necessário escrever código html juntamente com métodos rails e javascripts.<br><br>Por exemplo: O arquivo user.html.erb</p>                                                                                             |
| vendor/             | Neste diretório ficam aplicações criadas por terceiros, são aplicações prontas que podem ser incluídas na sua aplicação, usando apenas algum método de referência ou algum javascript.                                                                                                                                                                                      |

## 3. Adicionando dependências

Acessar a pasta config do projeto rails.

```
C:\Projetos\computacaonapratica>cd config
```

Ver o conteúdo da pasta, se não houver o arquivo boot.rb, criar um novo e adicionar o conteúdo abaixo:

```
C:\Projetos\computacaonapratica\config>touch boot.rb
```

```
C:\Projetos\computacaonapratica\config>nano boot.rb
```

```
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)

require 'bundler/setup' # Set up gems listed in the Gemfile.
require 'bootsnap/setup' # Speed up boot time by caching expensive operations.

```

Ctrl+X para sair, Y para salvar, Enter. Voltar para a pasta a raíz do projeto.

```
C:\Projetos\computacaonapratica\config>cd ..
```

Adicionar o yarn para execução dos comandos abaixo e testar se foi instalado: [https://classic.yarnpkg.com/en/docs/install](https://classic.yarnpkg.com/en/docs/install#)

```
C:\Projetos\computacaonapratica>yarn -v
```

Executar o comando abaixo:

```
C:\Projetos\computacaonapratica>rails webpacker:install
```

Verifique se todos os arquivos foram atualizados.

```
C:\Projetos\computacaonapratica>yarn install --check-files
```

## 4. Adicionando banco de dados da aplicação

Criar o arquivo para acessar o banco de dados da aplicação. Este projeto está usando Sqlite3, mas você pode configurar outros bancos.

```
C:\Projetos\computacaonapratica>cd config
```

Ver o conteúdo da pasta, se não houver o arquivo database.yml, criar um novo e adicionar o conteúdo abaixo:

```
C:\Projetos\computacaonapratica\config>touch database.yml
```

Veja outros exemplor de arquivos database.yml para diferentes tipos de banco de dados:&#x20;

* <https://gist.github.com/erichurst/961978>

```
C:\Projetos\computacaonapratica\config>nano database.yml
```

```
# SQLite version 3.x
#   gem install sqlite3
development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000
```

Ctrl+x para sair, em seguida Y para salvar e Enter para retornar para a raíz do projeto.

```
C:\Projetos\computacaonapratica\config>cd ..
```

## 5. Iniciando servidor web

No terminal entrar no diretório do projeto criado e inicie o servidor com o seguinte comando:

```
C:\Projetos\computacaonapratica>rails server
```

Acessar a página no seu navegador: [http://localhost:3000](http://localhost:3000/)

Visualizar a página do Rails!

![A instalação do Rails foi feita com sucesso!](/files/KR927anZZLe9OkQQwgms)

Para construir a página inicial da aplicação, no prompt abaixo fazer Ctrl + c para parar o servidor, então confirme a operação.

```
=> Booting Puma
=> Rails 6.1.4.4 application starting in development 
=> Run `bin/rails server --help` for more startup options
Puma starting in single mode...
* Puma version: 5.6.1 (ruby 2.6.8-p205) ("Birdie's Version")
*  Min threads: 5
*  Max threads: 5
*  Environment: development
*          PID: 33024
* Listening on http://127.0.0.1:3000
* Listening on http://[::1]:3000
Use Ctrl+C to stop
```

<br>
