• 20 hours
  • Medium

Free online content available in this course.

course.header.alt.is_certifying

Got it!

Last updated on 1/17/17

Introduction

Log in or subscribe for free to enjoy all this course has to offer!

Dans le cours d’initiation, vous avez vu comment créer des formulaires interactifs avec lesquels les utilisateurs peuvent ajouter, modifier et supprimer des données. Ici, nous allons voir plusieurs façons d’enrichir ces formulaires.
Pour cela, on va s’entraîner sur l’application de gestion de livres vue dans le cours d’initiation. Repartez de cette archive puis ‌complétez-la comme suit :

# app/models/book.rb
class Book < ActiveRecord::Base
  validates :title, presence: {
    message: "Le titre doit être renseigné."
  }

  validates :title, uniqueness: {
    message: "Ce titre est déjà pris."
  }
end
# app/controllers/books_controller.rb
class BooksController < ApplicationController
  def index
    @books = Book.all
  end

  def create
    Book.create title: params[:title]
    redirect_to "/books"
  end

  def show
    @book = Book.find(params[:id])
  end

  def update
    @book = Book.find(params[:id])
    if @book.update title: params[:title]
      redirect_to "/books/#{params[:id]}"
    else
      render "show"
    end
  end

  def destroy
    Book.find(params[:id]).destroy
    redirect_to "/books"
  end
end
# app/views/books/index.html.erb
<h1>Liste des livres</h1>
<% @books.each do |book| %>
  <p><a href="/books/<%= book.id %>"><%= book.title %></a></p>
<% end %>

<%= form_tag '/books', method: 'post' do %>
  <input type="text" name="title" />
  <input type="submit" value="Ajouter le livre" />
<% end %>
# app/views/books/show.html.erb
<h1><%= @book.title %></h1>

<%= form_tag "/books/#{@book.id}", method: "patch" do %>
  <input type="text" name="title" value="<%= @book.title %>" />
  <p><%= @book.errors[:title].first %></p>
  <input type="submit" value="Modifier le livre" />
<% end %>

<%= form_tag "/books/#{@book.id}", method: "delete" do %>
  <input type="submit" value="Supprimer le livre" />
<% end %>

<p><a href="/books">Retourner à l’index</a></p>
# config/routes.rb
Rails.application.routes.draw do
  root 'books#index'
  get 'books' => 'books#index'
  get 'books/:id' => 'books#show'
  patch 'books/:id' => 'books#update'
  delete 'books/:id' => 'books#destroy'
  post 'books' => 'books#create'
end
Example of certificate of achievement
Example of certificate of achievement