Skip to content

renanstn/ruby-on-rails-studies

Repository files navigation

Ruby on Rails Studies

Objetivo

  • Ter uma aplicação simples no Ruby on Rails funcionando
  • Ter testes unitários escritos com o rspec
  • Ter testes utilizando o Capybara
  • Conseguir executar todos os testes com a aplicação dockerizada
    • Resolver o problema do binário do chrome em docker

Todos os comandos utilizados para criar este app:

Create app

rails new blog

Start server

bin/rails server

Generate a new route action

bin/rails generate controller Articles index --skip-routes

Create a model

bin/rails generate model Article title:string body:text

Create a child model

bin/rails generate model Comment commenter:string body:text article:references

Migrate

bin/rails db:migrate

Logs

Criei uma nova rota editando o config/routes.rb e adicionando:

get "/articles", to: "articles#index"

Este comando gera tudo, inclusive o HTML da página em app/views/articles/index.html.erb.

Defini o endpoint /articles como root adicionando a linha:

root "articles#index"

No arquivo config/routes.rb.

Um console para brincar com as models está disponível em

bin/rails console

Para criar uma model nesse playground:

article = Article.new(title: "Hello Rails", body: "I am on Rails!")
article.save

Para encontrar ela pelo ID (1) usando o ORM do ruby:

Article.find(1)

List all:

Article.all()

Lembre-se que o () quando não há argumentos é opcional

Foi introduzido o resourceful routing, agora não é mais necessário ter uma linha para cada action no config/routes.rb.

bin/rails routes

Exibe as routes existentes

Repare nos campos belongs_to e has_many usados para indicar o parentesco entre as models article e comment.

Escrevendo testes com capybara

  • O capybara já vem instalado por padrão num projeto rails
  • Não mexi em NADA no test/test_helper.rb
  • Escrevi um teste em test/system/root_page_test.rb
  • Executei com:
rails test:system
  • Já funcionou!

Parei aqui: https://guides.rubyonrails.org/getting_started.html#using-concerns

Referências utilizadas

README (gerado pelo próprio rails)

This README would normally document whatever steps are necessary to get the application up and running.

Things you may want to cover:

  • Ruby version

  • System dependencies

  • Configuration

  • Database creation

  • Database initialization

  • How to run the test suite

  • Services (job queues, cache servers, search engines, etc.)

  • Deployment instructions

  • ...