Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Oficina Rails Girls + Desprograme: Mini Blog

Oficina Rails Girls + Desprograme: Mini Blog

Vamos aprender o que é um CRUD e como iniciar a criação de um blog usando Rails - incluindo até o deploy. o/

Rails Girls

July 15, 2017
Tweet

More Decks by Rails Girls

Other Decks in Education

Transcript

  1. Rails Girls e Desprograme Get excited and make things! @railsgirlssp

    fb.com/railsgirls.sp railsgirls.com/saopaulo
  2. Perguntas e Respostas O que é HTML? O que é

    Front-end? O que é uma linguagem de programação? O que é banco de dados?
  3. Perguntas e Respostas O que é Back-end? O que CSS?

    O que é terminal? O que é editor de texto?
  4. O que é Rails? Rails é um framework escrito em

    Ruby. Não é preciso escrever muito código para fazer coisas comuns. Software de opinião - Faça as coisas do jeito dele! (Rails Way)
  5. As pastas do Rails app/ Seu novo melhor amigo. Aí

    ficam os models, views, controllers, helpers, mailers e assets.
  6. Partiu Hello Word! CONTROLLER - Recebe os requests do site.

    Normalmente existe mais de uma rota para um controller. Vamos ver mais disso depois.
  7. Partiu Hello Word! VIEW - É onde as informações aparecem.

    O Controller fica com toda a informação, a view só mostra ela de uma maneira que a gente consiga ver melhor. =D ERuBy
  8. Vamos usar nosso novo formulário! É só preencher os campos

    e clicar em ‘Enviar’ (Save Article)
  9. Primeira página Vamos atualizar a página mais uma vez! Os

    parâmetros aparecem, mas parece que ainda num funcionou...
  10. Gerando um modelo Atenção! Nomes de modelos são no singular

    e controllers no plural! As tabelas de um modelo sempre estarão no plural, mas o Rails faz isso para você.
  11. Salvando os dados no controller O Rails tem várias coisinhas

    para que a aplicação que estamos desenvolvendo fique segura!
  12. Salvando os dados no controller Atualizando a página, vemos que

    o Rails vai reclamar que falta outra ação...
  13. Navegação Já podemos CRIAR, LISTAR e MOSTRAR artigos. Vamos adicionar

    uns liks para navegar de uma página para outra!
  14. Vamos adicionar um pouco de validação Hoje uma pessoa pode

    chegar e escrever qualquer coisa no seu blog…
  15. Vamos adicionar um pouco de validação app/models/article.rb class Article <

    ApplicationRecord validates :title, presence: true, length: { minimum: 5 } end
  16. Vamos adicionar um pouco de validação Modificamos a ação de

    create para quando der erro: def create @article = Article.new(article_params) if @article.save redirect_to @article else render 'new' end end app/controllers/articles_controller.rb
  17. Agora vamos melhorar o erro... app/views/articles/new.html.erb %= form_for :article, url:

    articles_path do |f| %> <% if @article.errors.any? %> <div id="error_explanation"> <h2> <%= pluralize(@article.errors.count, "error") %> prohibited this article from being saved: </h2> <ul> <% @article.errors.full_messages.each do |msg| %> <li><%= msg %></li> <% end %> </ul> </div> <% end %> <p> <%= f.label :title %><br> <%= f.text_field :title %> </p> ...
  18. Atualizando artigos Crie um arquivo app/views/articles/edit.html.erb <h1>Editing article</h1> <%= form_for

    :article, url: article_path(@article), method: :patch do |f| %> <% if @article.errors.any? %> <div id="error_explanation"> <h2> <%= pluralize(@article.errors.count, "error") %> prohibited this article from being saved: </h2> <ul> <% @article.errors.full_messages.each do |msg| %> <li><%= msg %></li> <% end %> </ul> </div> <% end %>
  19. Atualizando artigos Crie um arquivo app/views/articles/edit.html.erb <p> <%= f.label :title

    %><br> <%= f.text_field :title %> </p> <p> <%= f.label :text %><br> <%= f.text_area :text %> </p> <p> <%= f.submit %> </p> <% end %> <%= link_to 'Back', articles_path %>
  20. Atualizando artigos Adicionando link para a página de edição app/views/articles/index.h

    tml.erb <table> <tr> <th>Title</th> <th>Text</th> <th colspan="2"></th> </tr> <% @articles.each do |article| %> <tr> <td><%= article.title %></td> <td><%= article.text %></td> <td><%= link_to 'Show', article_path(article) %></td> <td><%= link_to 'Edit', edit_article_path(article) %></td> </tr> <% end %> </table>
  21. Deletando arquivos app/views/articles/index.html.erb ... <% @articles.each do |article| %> <tr>

    <td><%= article.title %></td> <td><%= article.text %></td> <td><%= link_to 'Show', article_path(article) %></td> <td><%= link_to 'Edit', edit_article_path(article) %></td> <td><%= link_to 'Destroy', article_path(article), method: :delete, data: { confirm: 'Are you sure?' } %></td> </tr> <% end %> ...
  22. Chegou a hora do deploy! Adicione essa gem ao seu

    Gemfile.rb gem 'rails_12factor', group: :production ruby "2.3.1" $ bundle install
  23. Chegou a hora do deploy! $ heroku create $ git

    push heroku master $ heroku run rake db:migrate $ heroku ps:scale web=1 $ heroku open