[RUBY] (Giri) Un employé du gouvernement local dans la vingtaine travaille sur un didacticiel Rails [Chapitre 5]

supposition

・ Le tutoriel Rails est la 4ème édition ・ Cette étude est le 3e tour (2e tour après le chapitre 9) ・ L'auteur est un débutant qui a fait tout Progate

Politique de base

・ Si vous le lisez, vous ne le comprendrez pas. ・ Recherchez et résumez les termes que vous ne comprenez pas (en bas de l'article, glossaire). ・ Plongez dans ce que vous ne comprenez pas. ・ Travaillez sur tous les exercices. ・ Ne copiez pas le code autant que possible.

Maintenant le chapitre 5. Il s'agit de la phase de développement à grande échelle. Cliquez ici pour la chanson d'aujourd'hui. Luby Sparks "Pop.1979" Différence rubis. J'ai hâte d'entendre le son de cette impulsion initiale.

Comme je l'avais prédit dans Chapitre 1, je n'ai pas suivi le cours Sass de Progate, donc je l'ai terminé rapidement. C'est une notation pour éliminer la duplication du code, faciliter l'écriture et répondre aux changements.

[5.1.1 Notes et exercices de navigation]

Bootstrap est là. Le plan est Cet article peut être facile à comprendre. Bref, il s'agit de faciliter le développement web en appelant celui dont le comportement est défini à l'avance. Il prend également en charge la conception réactive sans difficulté.

  1. La page Web regorge d'images de chats, n'est-ce pas? Téléchargeons l'image du chat de la figure 5.3 en utilisant les commandes du listing 5.4 8. → Téléchargez simplement avec la commande suivante. (Le chat est mignon, non?)
$ curl -OL cdn.learnenough.com/kitten.jpg

2. Utilisez la commande mv pour déplacer le fichier kitten.jpg téléchargé vers le répertoire de ressources approprié (référence: 5.2.1). → Allez dans le répertoire images avec la commande suivante

$ mv kitten.jpg app/assets/images
  1. Essayez d'afficher l'image kitten.jpg en utilisant image_tag (Fig. 5.4). → C'est OK si vous ajoutez ce qui suit à la fin de la maison.

ruby:home.html.erb


<%= link_to image_tag("kitten.jpg ", alt: "cute kitten") %>

[5.1.2 Bootstrap et mémos et exercices CSS personnalisés]

Je ne suis toujours pas sûr de CSS, donc cela prendra du temps, mais vérifions l'opération à chaque fois que j'en saisis un. C'est plus facile que de tout copier et de commenter un par un. Et comme c'est ennuyeux, je vais faire quelque chose qui peut être imbriqué à ce stade. Je pense que je nichais quelque part après ça. Faisons-le d'abord, puis reprenons les réponses plus tard.

  1. Veuillez vous référer à l'extrait 5.10 et commenter l'image de chat utilisée dans 5.1.1.1. Utilisez également la fonction HTML Inspector de votre navigateur pour vous assurer que lorsque vous commentez, il disparaît également de la source HTML. → Suivez simplement les instructions. Disparaître Kitun! !! !! !! !!

2. Ajoutez le code du Listing 5.11 à custom.scss et essayez de cacher toutes les images. Espérons que le logo Rails disparaîtra de votre page d'accueil. Utilisez la fonction Inspecteur comme précédemment pour voir que cette fois le code source HTML reste et que seule l'image n'est plus affichée. → C'est vrai. Je le cache simplement avec CSS. Je vais juste faire ceci, donc je vais omettre les détails.

[5.1.3 Notes et exercices partiels]

Partiel = partiel. Cela peut être plus facile à comprendre si vous imaginez un réfrigérateur partiel. L'image de le stocker séparément du gashacon là-bas. Si vous découpez les parties qui sont utilisées sur d'autres pages ou celles qui sont couramment utilisées sur toutes les pages et que vous les enregistrez individuellement. Est-il appelé (rendu) au besoin?

  1. Essayez de remplacer la partie de balise head que Rails génère par défaut par un rendu comme indiqué dans l'extrait 5.18. Astuce: Si vous le supprimez simplement, vous devrez réécrire le partiel à partir de zéro plus tard, alors enregistrez-le quelque part avant de le supprimer. → Pour le moment, évacuer correctement et remplir comme indiqué

2. Je n'ai pas encore fait de partiel comme le Listing 5.18, donc le test devrait être rouge à ce stade. Lançons le test et vérifions-le. → Sora RED.

3. Créez un partiel pour la balise head dans le répertoire layouts, écrivez le code que vous avez enregistré précédemment et vérifiez enfin que le test redevient vert. → Créez le fichier suivant et partiel! (Le test est également VERT)

ruby:_rails_default.html.erb


<%= csrf_meta_tags %>
<%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>

[5.2.1 Mémo du pipeline d'actifs]

Un pipeline d'actifs que je pense difficile à comprendre. Cette phrase est-elle importante? «Vous n'avez pas à vous soucier de« vous concentrer sur l'efficacité du développement ou le temps de chargement ». Gardez-le organisé pour les programmeurs dans l'environnement de développement et utilisez Asset Pipeline dans l'environnement de production pour minimiser les fichiers. Tu dois juste le faire. " En bref, est-ce une image de passage d'objets épars à travers un tube mince? Dans le processus, il aimerait organiser les fichiers, éliminer les éléments inutiles et les minimiser.

[5.2.2 Notes et exercices de feuille de style avec une syntaxe merveilleuse]

En regardant la liste des variables LESS, @ gray-light est plus clair (@ gray-base, 46,7%) au lieu de # 777. Mais est-ce une différence de version? Ce n'est pas grave car la couleur réelle ne semble pas changer (les autres couleurs par défaut sont-elles les mêmes)? 。

  1. Comme suggéré en 5.2.2, convertissons manuellement le CSS du pied de page. Plus précisément, essayez de convertir le contenu de l'extrait 5.17 un par un pour qu'il ressemble à l'extrait 5.20. → Il est pratiqué depuis sa création. C'était bon. (Je pensais que c'était facile à voir, alors j'ai mis un saut de ligne dans le nid)

custom.scss


/* footer */

footer {
  margin-top: 45px;
  padding-top: 5px;
  border-top: 1px solid $gray-medium-light;
  color: $gray-light;
  
  a {
    color: $gray;
    
    &:hover {
      color: $gray-darker;
    }
  }
  
  small {
    float: left;
  }
  
  ul {
    float: right;
    
    li {
      float: left;
      margin-left: 15px;
    }
  }
}

[5.3 Mise en page et lien]

Au début, la route nommée (○○ _path) ne semblait pas correcte, mais il est habituel de l'écrire comme ceci car les rails ont une telle fonction et il est facile de répondre aux changements. Cela et compréhension. Quand il devient possible de l'utiliser en définissant le routage.

[5.3.2 Mémo et exercice de l'URL racine Rails]

〇〇_path: renvoie la chaîne de caractères sous l'URL racine. En gros, utilisez ceci 〇〇_url: renvoie la chaîne de caractères de l'URL complète. Utilisé uniquement pour les redirections.

  1. En fait, la route nommée peut être modifiée à l'aide de l'option as:. Essayez de changer l'itinéraire nommé sur la page d'aide en helf, en suivant le célèbre dessin animé Far Side (extrait 5.29). → Ajouté comme: 'helf' comme indiqué dans l'extrait 5.29.

2. Assurez-vous que le test est rouge en raison du changement précédent. Veuillez mettre à jour le routage comme indiqué dans l'extrait 5.28 pour rendre le test vert. → Naturellement ROUGE. Si vous changez le test en helf_path, il sera VERT.

3. Utilisez l'opérateur de comparaison == pour vérifier que les objets créés dans les deux tâches ci-dessus sont identiques. → Remettons-le.

[5.3.3 Exercice sur l'itinéraire nommé]

  1. Créez un routage helf comme indiqué dans l'extrait 5.29 et essayez de mettre à jour les liens de mise en page.
  2. Comme pour l'exercice précédent, utilisez la fonction Annuler de l'éditeur pour annuler les modifications apportées dans cet exercice. → J'aime helf. Ajoutez comme: 'helf' à la racine, définissez help_path dans l'en-tête sur helf_path, et vous avez terminé! Et ramenez-le! (Avez-vous besoin de cet exercice?)

[5.3.4 Lier les notes de test et les exercices]

Présentation du test d'intégration. «Les tests d'intégration vous permettent de simuler et de tester le comportement de bout en bout de votre application.» Écrivons en pensant au déroulement des opérations. Pour les tests, la documentation Rails peut être utile. (Le lien est pour Rails 6) assert_select est flexible, mais il est sage de s'en tenir au point de tester les éléments HTML (tels que les liens) qui changent fréquemment dans votre mise en page. Vous l'avez également couvert dans le Glossaire du chapitre 3. Oups, y a-t-il une erreur ici? Quand je l'ai recherché, la destination du lien était quelque chose comme "root_path". Puisque 〇〇_path est une méthode, '' n'est pas nécessaire. C'était un simple oubli.

  1. Essayez de changer about_path dans le pied de page partiel en contact_path et voyez si le test détecte correctement l'erreur. → Il vous dira qu'il n'y a pas d'élément qui correspond à / about.

2. Comme indiqué dans l'extrait 5.35, il est pratique de rendre l'assistant full_title utilisé dans l'assistant d'application disponible dans l'environnement de test. De cette façon, vous pouvez tester le titre correct avec un code comme l'extrait 5.36. Cependant, ce n'est pas un test parfait. Par exemple, une faute de frappe dans le titre de base, telle que «Ruby on Rails Tutoial», ne serait pas détectée par ce test. Pour résoudre ce problème, nous devons écrire un test pour l'assistant full_title. Alors, créez un fichier pour tester l'assistant d'application et remplacez la partie FILL_IN du Listing 5.37 par le code approprié. Astuce: Dans le Listing 5.37, nous avons utilisé assert_equal , <valeur réelle>, mais en interne, nous comparons les valeurs attendues et réelles avec l'opérateur == pour voir si elles sont correctes. Je teste. → J'ai enfin l'impression que le contenu a été changé au troisième tour. Tout d'abord, incluez l'aide d'application (méthode full_title) pour qu'elle puisse être utilisée dans l'environnement de test. Vous pouvez facilement tester si le titre de la page correspond au test d'intégration de la mise en page. Cependant, je ne trouve pas de fautes de frappe, je vais donc tester l'assistant d'application lui-même. La partie de FILL_IN est la suivante. Le test est VERT.

test/helpers/application_helper_test.rb


require 'test_helper'

class ApplicationHelperTest < ActionView::TestCase
  test "full title helper" do
    assert_equal full_title,         "Ruby on Rails Tutorial Sample App"
    assert_equal full_title("Help"), "Help | Ruby on Rails Tutorial Sample App"
  end
end

[5.4.1 Exercice du contrôleur des utilisateurs]

  1. Veuillez modifier le Listing 5.41 en vous référant au Tableau 5.1 afin que vous puissiez utiliser signup_path au lieu de users_new_url.
  2. Assurez-vous que le test devient rouge en raison des modifications que vous avez apportées précédemment. Le but de cet exercice est de créer le rythme rouge / vert décrit dans Développement piloté par les tests (colonne 3.3). Ce test sera modifié pour devenir vert dans le prochain 5.4.2. → Changez simplement users_new_url dans users_controller_test.rb en signup_path. Naturellement, ce sera ROUGE. Ça vole, mais comment rendre signup_path disponible? Vous devez configurer le routage. Il devrait correspondre ci-dessous. Le test est maintenant VERT.

routes.rb


Rails.application.routes.draw do
  get 'users/new'

  root 'static_pages#home'
  get '/help',    to: 'static_pages#help'
  get '/about',   to: 'static_pages#about'
  get '/contact', to: 'static_pages#contact'
  get '/signup',  to: 'users#new'
end

La prochaine fois que je l'ai lu, c'était juste.

[5.4.2 Exercice d'URL d'enregistrement de l'utilisateur]

  1. Si vous n'avez pas encore commencé l'exercice dans 5.4.1.1, changez-le d'abord comme indiqué dans l'extrait 5.41 afin de pouvoir utiliser l'itinéraire nommé signup_path. De plus, la route nommée est maintenant disponible dans l'extrait 5.43, alors assurez-vous que votre test est vert à ce stade. → Je l'ai fait il y a quelque temps.

2. Pour confirmer que le test précédent fonctionne correctement, commentez la partie racine d'inscription et vérifiez que le test est rouge. Si vous pouvez le confirmer, décommentez-le et remettez-le à l'état vert. → Essayez-le.

3. Ajoutez le code pour accéder à la page d'inscription au test d'intégration du Listing 5.32 (en utilisant la méthode get). Après avoir ajouté le code, exécutez le test et assurez-vous que le résultat est correct. Astuce: essayez d'utiliser l'assistant full_title présenté dans l'extrait 5.36. → Probablement pas, mais j'ai également ajouté un test pour vérifier s'il existe un lien Sing up. Je ferai également ce que je dois faire pour confirmer mes connaissances.

site_layout_test.rb


require 'test_helper'

class SiteLayoutTest < ActionDispatch::IntegrationTest
  
  test "layout links" do
    get root_path
    assert_template 'static_pages/home'
    assert_select "a[href=?]", root_path, count: 2
    assert_select "a[href=?]", help_path
    assert_select "a[href=?]", about_path
    assert_select "a[href=?]", contact_path
    assert_select "a[href=?]", signup_path
    get contact_path
    assert_select "title", full_title("Contact")
    get signup_path
    assert_select "title", full_title("Sign up")
  end
  
end

Résumé du chapitre 5

・ Bootstrap est pratique, mais j'entends qu'il n'est pas surutilisé. ・ Les chats sont universels et mignons. ・ Sass est pratique. Le code est rafraîchissant. -Apparence partielle et rafraîchissante. ・ Asset Pipeline optimise les actifs (images, CSS, JS, etc.) sans autorisation. -Si vous définissez le routage, vous pouvez utiliser 〇〇_path et 〇〇_url. -Le test d'intégration peut tester l'opération comme le déplacement entre les pages. Simulons l'opération.

Le chapitre 5 est terminé. Au troisième tour, j'ai enfin pu en saisir le contenu. heureux. Au chapitre 6, nous allons créer un modèle utilisateur.

Allez au chapitre 6! Cliquez ici pour le chapitre 4 Cliquez ici pour les conditions préalables et le statut de l'auteur pour l'apprentissage

Glossaire qui saisit en quelque sorte l'image

・ Commentaire conditionnel Une instruction conditionnelle dans le code source HTML que vous pouvez utiliser pour transmettre ou masquer du code à Microsoft Internet Explorer. Il a été aboli depuis IE10.

· Site Web adaptatif Une conception dans laquelle le format d'affichage change en fonction du terminal / navigateur à afficher. Même sur le même site Web, la taille des caractères et du contenu peut changer entre les smartphones et les PC. Celui qui est souvent dit réactif.

・ Assert_template Testez si le modèle spécifié dans l'action est représenté.

・ Assert_equal assert_equal Teste si les deux valeurs sont égales sous la forme de et <valeur réelle>.

Recommended Posts

(Giri) Un employé du gouvernement local dans la vingtaine travaille sur un tutoriel Rails [Chapitre 11]
(Giri) Un employé du gouvernement local dans la vingtaine travaille sur un didacticiel Rails [Chapitre 1]
(Giri) Un employé du gouvernement local dans la vingtaine travaille sur un didacticiel Rails [Chapitre 12]
(Giri) Un employé du gouvernement local dans la vingtaine travaille sur un didacticiel Rails [Chapitre 5]
(Giri) Un employé du gouvernement local dans la vingtaine travaille sur un didacticiel Rails [Chapitre 3]
(Giri) Un employé du gouvernement local dans la vingtaine travaille sur un didacticiel Rails [Chapitre 4]
(Giri) Un employé du gouvernement local dans la vingtaine travaille sur un didacticiel Rails [Chapitre 8]
(Giri) Un employé du gouvernement local dans la vingtaine travaille sur un didacticiel Rails [Chapitre 6]
(Giri) Un employé du gouvernement local dans la vingtaine travaille sur un didacticiel Rails [Chapitre 13]
(Giri) Un employé du gouvernement local dans la vingtaine travaille sur un didacticiel Rails [Chapitre 9]
(Giri) Un employé du gouvernement local dans la vingtaine travaille sur un didacticiel Rails [Chapitre 10]
(Giri) Un employé du gouvernement local dans la vingtaine travaille sur un didacticiel Rails [Chapitre 7]
(Giri) Un employé du gouvernement local dans la vingtaine travaille sur un didacticiel Rails [Chapitre 2]
(Giri) Un employé du gouvernement local dans la vingtaine travaille sur un didacticiel Rails [Introduction]
[Tutoriel Rails Chapitre 5] Créer une mise en page
(Ruby on Rails6) Création de données dans une table
tutoriel rails Chapitre 6
tutoriel rails Chapitre 1
tutoriel rails Chapitre 7
tutoriel rails Chapitre 5
tutoriel rails Chapitre 10
tutoriel rails Chapitre 9
tutoriel rails Chapitre 8
[Tutoriel Rails Chapitre 2] Que faire lorsque vous faites une erreur dans le nom de la colonne
Tutoriel Rails Chapitre 3 Apprentissage
Mémorandum du didacticiel Rails (Chapitre 3, 3.1)
Tutoriel Rails Chapitre 4 Apprentissage
Tutoriel Rails Chapitre 1 Apprentissage
Tutoriel Rails Chapitre 2 Apprentissage
Comment afficher des graphiques dans Ruby on Rails (LazyHighChart)
Appliquer le CSS à une vue spécifique dans Ruby on Rails