Initialisation de la DB avec des données et affichage du tableau des livres

master
Nolwenn LAVIELLE 2020-02-03 14:50:48 +01:00
parent b5c81c2882
commit 737dd4111a
16 changed files with 197 additions and 27 deletions

View File

@ -57,8 +57,8 @@ GEM
popper_js (>= 1.14.3, < 2)
sassc-rails (>= 2.0.0)
builder (3.2.4)
byebug (11.1.0)
capybara (3.30.0)
byebug (11.1.1)
capybara (3.31.0)
addressable
mini_mime (>= 0.1.3)
nokogiri (~> 1.8)
@ -86,7 +86,7 @@ GEM
erubi (1.9.0)
eventmachine (1.2.7)
execjs (2.7.0)
ffi (1.12.1)
ffi (1.12.2)
formatador (0.2.5)
globalid (0.4.2)
activesupport (>= 4.2.0)
@ -127,13 +127,13 @@ GEM
loofah (2.4.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
lumberjack (1.1.1)
lumberjack (1.2.1)
mail (2.7.1)
mini_mime (>= 0.1.1)
marcel (0.3.3)
mimemagic (~> 0.3.2)
method_source (0.9.2)
mimemagic (0.3.3)
mimemagic (0.3.4)
mini_mime (1.0.2)
mini_portile2 (2.4.0)
minitest (5.14.0)
@ -152,7 +152,7 @@ GEM
method_source (~> 0.9.0)
public_suffix (4.0.3)
puma (3.12.2)
rack (2.1.1)
rack (2.1.2)
rack-livereload (0.3.17)
rack
rack-test (1.1.0)
@ -189,7 +189,7 @@ GEM
rerun (0.13.0)
listen (~> 3.0)
ruby_dep (1.5.0)
rubyzip (2.0.0)
rubyzip (2.2.0)
sass (3.7.4)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)

View File

@ -15,7 +15,7 @@ Préparation de la migration par création de la table Livres :
[source, sh]
----
bin/rails g migration livres titre:string auteur:string synopsis:text style:string isbn:integer
bin/rails g model livres titre:string auteur:string synopsis:text style:string isbn:integer
----
Préparation des gems :
@ -123,7 +123,7 @@ Migration de la base de données avec les données :
[source, bash]
----
bin/rake db:create db:seed
bin/rake db:create db:migrate db:seed
----
Lancement de lapplication :
@ -133,6 +133,59 @@ Lancement de lapplication :
bin/rails s
----
Ça marche, on peut arrêter à tout moment le serveur avec la combinaison de touches contrôle+D.
== Tableau des livres
[source, bash]
----
bin/rails g controller Livres index
----
[source, ruby]
----
# /app/controllers/livres_controller.rb
class LivresController < ApplicationController
def index
@livres = Livre.all
end
end
----
[source, ruby]
----
# /app/views/livres/index.html
<h1>Tableau de mes livres</h1>
<% if @livres.size > 0 %>
<table>
<thead>
<tr>
<th>Titre</th>
<th>Auteur</th>
<th>Synopsis</th>
<th>Style</th>
<th>ISBN</th>
</tr>
</thead>
<tbody>
<% @livres.each do |livre| %>
<tr>
<td><%= livre.titre %></td>
<td><%= livre.auteur %></td>
<td><%= livre.synopsis[0..120] %></td>
<td><%= livre.style %></td>
<td><%= livre.isbn %></td>
</tr>
<% end %>
</tbody>
</table>
<% end %>
----
== Sources dinspiration
* https://stackoverflow.com/questions/23926204/updating-table-data-in-rails-using-ajax

View File

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

View File

@ -0,0 +1,3 @@
// Place all the styles related to the Livres controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

View File

@ -0,0 +1,5 @@
class LivresController < ApplicationController
def index
@livres = Livre.all
end
end

View File

@ -0,0 +1,2 @@
module LivresHelper
end

View File

@ -0,0 +1,2 @@
class Livre < ApplicationRecord
end

View File

@ -0,0 +1,29 @@
<h1>Tableau de mes livres</h1>
<% if @livres.size > 0 %>
<table>
<thead>
<tr>
<th>Titre</th>
<th>Auteur</th>
<th>Synopsis</th>
<th>Style</th>
<th>ISBN</th>
</tr>
</thead>
<tbody>
<% @livres.each do |livre| %>
<tr>
<td><%= livre.titre %></td>
<td><%= livre.auteur %></td>
<td><%= livre.synopsis[0..120] %></td>
<td><%= livre.style %></td>
<td><%= livre.isbn %></td>
</tr>
<% end %>
</tbody>
</table>
<% end %>

View File

@ -1,3 +1,4 @@
Rails.application.routes.draw do
get 'livres/index'
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end

View File

@ -0,0 +1,13 @@
class CreateLivres < ActiveRecord::Migration[5.2]
def change
create_table :livres do |t|
t.string :titre
t.string :auteur
t.text :synopsis
t.string :style
t.integer :isbn
t.timestamps
end
end
end

25
db/schema.rb 100644
View File

@ -0,0 +1,25 @@
# This file is auto-generated from the current state of the database. Instead
# of editing this file, please use the migrations feature of Active Record to
# incrementally modify your database, and then regenerate this schema definition.
#
# Note that this schema.rb definition is the authoritative source for your
# database schema. If you need to create the application database on another
# system, you should be using db:schema:load, not running all the migrations
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
# you'll amass, the slower it'll run and the greater likelihood for issues).
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 2020_02_03_130314) do
create_table "livres", force: :cascade do |t|
t.string "titre"
t.string "auteur"
t.text "synopsis"
t.string "style"
t.integer "isbn"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
end

View File

@ -5,31 +5,34 @@ Livre.create(
style: 'Science-Fiction',
isbn: 2277125105
)
Livre.create(
titre: 'Dune',
auteur: 'Frank Herbert',
synopsis: 'Il ny a pas, dans tout lEmpire, de planète plus inhospitalière que Dune. Partout des sables à perte de vue. Une seule richesse : lépice de longue vie, née du désert, et que tout lunivers achète à nimporte quel prix. Richesse très convoitée : quand Leto Atréides reçoit Dune en fief, il flaire le piège. Il aura besoin des guerriers Fremen qui, réfugiés au fond du désert, se sont adaptés à une vie très dure en préservant leur liberté, leurs coutumes et leur foi mystique. Ils rêvent du prophète qui proclamera la guerre sainte et qui, à la tête des commandos de la mort, changera le cours de lhistoire. Cependant les Révérendes Mères du Bene Gesserit poursuivent leur programme millénaire de sélection génétique ; elles veulent créer un homme qui concrétisera tous les dons latents de lespèce. Tout est fécond dans ce programme, y compris ses défaillances. Le Messie des Fremen est-il déjà né dans lEmpire ?',
style: 'Science-Fiction',
titre: 'Dune',
auteur: 'Frank Herbert',
synopsis: 'Il ny a pas, dans tout lEmpire, de planète plus inhospitalière que Dune. Partout des sables à perte de vue. Une seule richesse : lépice de longue vie, née du désert, et que tout lunivers achète à nimporte quel prix. Richesse très convoitée : quand Leto Atréides reçoit Dune en fief, il flaire le piège. Il aura besoin des guerriers Fremen qui, réfugiés au fond du désert, se sont adaptés à une vie très dure en préservant leur liberté, leurs coutumes et leur foi mystique. Ils rêvent du prophète qui proclamera la guerre sainte et qui, à la tête des commandos de la mort, changera le cours de lhistoire. Cependant les Révérendes Mères du Bene Gesserit poursuivent leur programme millénaire de sélection génétique ; elles veulent créer un homme qui concrétisera tous les dons latents de lespèce. Tout est fécond dans ce programme, y compris ses défaillances. Le Messie des Fremen est-il déjà né dans lEmpire ?',
style: 'Science-Fiction',
isbn: 2221026020
)
Livre.create(
titre: 'Le bureau des atrocités',
auteur: 'Charles Stross',
synopsis: 'On vous a menti sur toute lhistoire contemporaine. Durant la Seconde Guerre mondiale, les nazis ont failli lemporter grâce à leurs sacrifices humains et leurs évocations des puissances ténébreuses qui rôdent derrière la porte dautres univers. Linformaticien Bob Howard (dont le nom semble inspiré du premier prénom de H. P. Lovecraft) a été engagé de force au Bureau des Atrocités, dit aussi la Laverie Centrale, parce quil a eu le malheur dexplorer des archives qui auraient dû être effacées. Et dy apprendre la thaumaturgie mathématique. En effet, la Laverie, le plus secret des services secrets britanniques, veille à ce que certains théorèmes qui ouvrent laccès sur dautres univers ne soient jamais redécouverts. Elle enquête accessoirement sur tous les phénomènes étranges aux fins de les résorber. Ce qui nexclut pas la bureaucratie la plus tatillonne. Howard est lun de ses agents qualifiés action. Précisément, il lui faut aller aux Etats-Unis récupérer un chercheur auquel semblent sintéresser des terroristes. Une chercheuse plutôt, rousse aussi flamboyante quintelligente. Et Howard se retrouve sur la piste de lAhnenerbe, le plus mystérieux des organismes nazis, qui aurait survécu un demi-siècle sur un autre monde, dans un autre univers. Grâce peut-être à laide dentités à côté desquelles Cthulhu est un gentil mickey. Issu dun croisement improbable entre James Hadley Chase, Ian Fleming et H.-P. Lovecraft, X-Files et Men in Black, ce roman déplace les frontières entre genres. Et Charles Stross sy montre désopilant autant que terrifiant.',
style: 'Science-Fiction',
titre: 'Le bureau des atrocités',
auteur: 'Charles Stross',
synopsis: 'On vous a menti sur toute lhistoire contemporaine. Durant la Seconde Guerre mondiale, les nazis ont failli lemporter grâce à leurs sacrifices humains et leurs évocations des puissances ténébreuses qui rôdent derrière la porte dautres univers. Linformaticien Bob Howard (dont le nom semble inspiré du premier prénom de H. P. Lovecraft) a été engagé de force au Bureau des Atrocités, dit aussi la Laverie Centrale, parce quil a eu le malheur dexplorer des archives qui auraient dû être effacées. Et dy apprendre la thaumaturgie mathématique. En effet, la Laverie, le plus secret des services secrets britanniques, veille à ce que certains théorèmes qui ouvrent laccès sur dautres univers ne soient jamais redécouverts. Elle enquête accessoirement sur tous les phénomènes étranges aux fins de les résorber. Ce qui nexclut pas la bureaucratie la plus tatillonne. Howard est lun de ses agents qualifiés action. Précisément, il lui faut aller aux Etats-Unis récupérer un chercheur auquel semblent sintéresser des terroristes. Une chercheuse plutôt, rousse aussi flamboyante quintelligente. Et Howard se retrouve sur la piste de lAhnenerbe, le plus mystérieux des organismes nazis, qui aurait survécu un demi-siècle sur un autre monde, dans un autre univers. Grâce peut-être à laide dentités à côté desquelles Cthulhu est un gentil mickey. Issu dun croisement improbable entre James Hadley Chase, Ian Fleming et H.-P. Lovecraft, X-Files et Men in Black, ce roman déplace les frontières entre genres. Et Charles Stross sy montre désopilant autant que terrifiant.',
style: 'Science-Fiction',
isbn: 2253123684
)
Livre.create(
titre: 'La mythologie du monde celte',
auteur: 'Claude Sterckx',
synopsis: 'Mystérieux Celtes ? Oui et non… Oui parce quon les croit généralement enveloppés dune aura hors du commun… Non, parce que les chercheurs ont mis au jour bien des aspects de leur personnalité et de leur mode de vie… Oui encore, parce que ces travaux restent trop mal connus et que, trop souvent, des élucubrations alléchantes mais largement fantasmatiques tiennent le devant de la scène… Laissant les fantasmes à ceux quils séduisent, la recherche de la vérité est un jeu gratifiant qui laisse voir que les traditions des anciens Celtes étaient étonnamment subtiles et que les formes dans lesquelles ils les ont le mieux exprimées - mythes, contes et légendes - surpassent souvent les meilleurs romans ! Le présent livre propose dabord une introduction à létat actuel des connaissances puis sattache à une analyse des conceptions du monde telles que les révèle la mythologie : car celle-là nest pas un simple recueil de contes mais une tentative, dans un langage imagé, dexpliquer le fonctionnement et le destin de lunivers en fonction des connaissances scientifiques et de la réflexion philosophique de lépoque.',
style: 'Histoire',
titre: 'La mythologie du monde celte',
auteur: 'Claude Sterckx',
synopsis: 'Mystérieux Celtes ? Oui et non… Oui parce quon les croit généralement enveloppés dune aura hors du commun… Non, parce que les chercheurs ont mis au jour bien des aspects de leur personnalité et de leur mode de vie… Oui encore, parce que ces travaux restent trop mal connus et que, trop souvent, des élucubrations alléchantes mais largement fantasmatiques tiennent le devant de la scène… Laissant les fantasmes à ceux quils séduisent, la recherche de la vérité est un jeu gratifiant qui laisse voir que les traditions des anciens Celtes étaient étonnamment subtiles et que les formes dans lesquelles ils les ont le mieux exprimées - mythes, contes et légendes - surpassent souvent les meilleurs romans ! Le présent livre propose dabord une introduction à létat actuel des connaissances puis sattache à une analyse des conceptions du monde telles que les révèle la mythologie : car celle-là nest pas un simple recueil de contes mais une tentative, dans un langage imagé, dexpliquer le fonctionnement et le destin de lunivers en fonction des connaissances scientifiques et de la réflexion philosophique de lépoque.',
style: 'Histoire',
isbn: 2501054105
)
Livre.create(
titre: 'Xenos',
auteur: 'Dan Abnett',
synopsis:  La pensée engendre lhérésie - lhérésie appelle le châtiment ». Infiltrée au cœur de lhumanité, lInquisition la sillonne comme une ombre vengeresse, poursuivant et abattant impitoyablement ses ennemis avec une intransigeance absolue. Linquisiteur Eisenhorn se trouve confronté à une conjuration interstellaire de grande envergure ainsi quà des sombres puissances démoniaques qui toutes rivalisent pour la possession dun texte ésotérique dune abominable puissance - un antique grimoire connu sous le nom de Nécrothèque. Découvrez le premier roman de la trilogie du célèbre Inquisiteur Eisenhorn et percez les mystères de lun des meilleurs univers de science-fiction, celui de Warhammer 40 000 !',
style: 'Fantasy',
isbn: 2915989273
)
titre: 'Xenos',
auteur: 'Dan Abnett',
synopsis:  La pensée engendre lhérésie - lhérésie appelle le châtiment ». Infiltrée au cœur de lhumanité, lInquisition la sillonne comme une ombre vengeresse, poursuivant et abattant impitoyablement ses ennemis avec une intransigeance absolue. Linquisiteur Eisenhorn se trouve confronté à une conjuration interstellaire de grande envergure ainsi quà des sombres puissances démoniaques qui toutes rivalisent pour la possession dun texte ésotérique dune abominable puissance - un antique grimoire connu sous le nom de Nécrothèque. Découvrez le premier roman de la trilogie du célèbre Inquisiteur Eisenhorn et percez les mystères de lun des meilleurs univers de science-fiction, celui de Warhammer 40 000 !',
style: 'Fantasy',
isbn: 2915989273)

View File

@ -0,0 +1,9 @@
require 'test_helper'
class LivresControllerTest < ActionDispatch::IntegrationTest
test "should get index" do
get livres_index_url
assert_response :success
end
end

15
test/fixtures/livres.yml vendored 100644
View File

@ -0,0 +1,15 @@
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
one:
titre: MyString
auteur: MyString
synopsis: MyText
style: MyString
isbn: 1
two:
titre: MyString
auteur: MyString
synopsis: MyText
style: MyString
isbn: 1

View File

@ -0,0 +1,7 @@
require 'test_helper'
class LivreTest < ActiveSupport::TestCase
# test "the truth" do
# assert true
# end
end