> 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>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://carolsprak.gitbook.io/ruby-on-rails-para-iniciantes/criar-um-projeto-em-ruby-on-rails.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
