Partage
  • Partager sur Facebook
  • Partager sur Twitter

MOOC Ruby on Rails

    18 février 2019 à 16:25:19

    Je ne pense pas que le problème vienne de postgresql. Essayez bundle update puis de relancer le serveur :)
    • Partager sur Facebook
    • Partager sur Twitter
      21 février 2019 à 10:18:01

      Bonjour Julien, merci

      Oui, mais sans succès, j'avais déjà du lancer un bundle update a cause de la gem nokogiri.

      Le bundle install voulais pas se lancer sans. Une fois ce problème réglé, je suis tombé sur l'erreur de mon précédent post.

      • Partager sur Facebook
      • Partager sur Twitter
        22 février 2019 à 13:52:47

        Hello,

        Met à jour ton gemfile :

        gem 'sqlite3', '~> 1.3.6'

        Puis fait un bundle update

        Si ca fonctionne pas, indique nous la version de ruby et de rails utilisés dans le projet. (j'ai plusieurs version selon les corrections à effectuer)

        -
        Edité par Timeuhmeuh 22 février 2019 à 13:59:52

        • Partager sur Facebook
        • Partager sur Twitter
          24 février 2019 à 13:18:15

          Timeuhmeuh a écrit:

          Hello,

          Met à jour ton gemfile :

          gem 'sqlite3', '~> 1.3.6'

          Puis fait un bundle update

          Si ca fonctionne pas, indique nous la version de ruby et de rails utilisés dans le projet. (j'ai plusieurs version selon les corrections à effectuer)

          -
          Edité par Timeuhmeuh 22 février 2019 à 13:59:52


          Ça fonctionné ! Merci ! En effet la version de sqlite n’était pas précisée auparavant, une raison particulière pourquoi celle-ci est plus adaptée a la 1.4 ? (que j'ai)
          • Partager sur Facebook
          • Partager sur Twitter
            24 février 2019 à 18:38:02

            Bonjour, j'avais le meme soucis en travaillant sur AWS cloud9 D'amazon, quand j'activais la commande  db:migrate sur un projet ruby. 

            j'ai trouvé la reponse sur Stackoverflow, qui explique la raison de ce bug et ça ma tellement simplifier la vie que je l'ai mise sur marque page.

            En voici la traduction en francais et plus bas le lien vers la reponse de l'autre forum  : 

             " Le problème est dû à Active Record qui a une contrainte de version sur  le gem sqlite3. Par exemple, dans le cas de Rails 5.2.2 (dernière version stable au moment où j'écris cette réponse), il s'agit de

            ~> 1.3.6. Cependant, cette contrainte n'est pas spécifiée dans gemspec, mais dans un fichier source contenant la classe d'adaptateur. En conséquence, Bundler n'est pas au courant et installe la version 1.4.0 de SQL Gem 3, qui est incompatible avec l’active record.

            La bonne nouvelle est que le correctif a déjà été fusionné dans les branches de maintenance principale et principale de Rails 5.2 (et éventuellement d’autres), et devrait être inclus dans la version 5.2.3.

            Pour l'instant, vous pouvez effectuer l'une des opérations suivantes:

             >Ajoutez la contrainte sqlite3 à votre Gemfile: gem 'sqlite3', '~> 1.3.6'

            >Installez Active Record à partir d’une branche nommée 5-2-stable. " 

            https://stackoverflow.com/questions/54527277/cant-activate-sqlite3-1-3-6-already-activated-sqlite3-1-4-0

            -
            Edité par Bennani Ismail 24 février 2019 à 18:39:40

            • Partager sur Facebook
            • Partager sur Twitter
              1 mars 2019 à 19:49:01

              Nouvelle erreur en plus !! YOUHOU la troisième

              Alors ce screen, c'est la troisième erreur que j'ai.

              Bonjouuuur

              j'ai un soucis sur le tuto rails !

              mon uniqueness ne prends pas effet quand je fais un book = Book.create title: "Nom_de_livre_déjà_pris", category_id: "1"

              et j'ai aussi un soucis.. la console me renvoie constemment que je ne peux plus créer de livre sans category id, le titre à lui seul ne se suffit plus

              # app/models/book.rb
              class Book < ActiveRecord::Base
                belongs_to :category
              
                validates :title, presence: {
                  message: "Le titre doit être renseigné."
                }
              
                validates :title, uniqueness: {
                  message: "Ce titre est déjà pris."
                }
              end

              Et bon voici la mini issue (qui est en plus du premier soucis rencontré, car là je peux créer  autant de livres que je veux du même titre)

              irb(main):010:0> book.e

              irb(main):010:0> book.errors.to_hash
              => {:category=>["must exist"]}
              Merci d'avance!!

              -
              Edité par Jsuisouf 1 mars 2019 à 20:24:24

              • Partager sur Facebook
              • Partager sur Twitter
                27 mars 2019 à 9:50:39

                bonjour à tous, 

                Impossible de faire fonctionner le serveur pour voir ma page html.

                J'ai téléchargé sqlite3 puis mis à jour avec un bundle update mais quand je veux afficher ma pages/home ceci ressort:

                Help me please !!!

                je suis sous mac mojave ma version de ruby est la 2.4.4 celle installé pour le cours , celle de node 11.12.0 et celle de rails 4.2.10

                Merci pour votre aide

                Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 'sqlite3'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).

                Extracted source (around line #177):
                175
                176
                177
                178
                179
                180
                              
                require path_to_adapter
                rescue Gem::LoadError => e
                raise Gem::LoadError, "Specified '#{spec[:adapter]}' for database adapter, but the gem is not loaded. Add `gem '#{e.name}'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord)."
                rescue LoadError => e
                raise LoadError, "Could not load '#{path_to_adapter}'. Make sure that the adapter in config/database.yml is valid. If you use an adapter other than 'mysql', 'mysql2', 'postgresql' or 'sqlite3' add the necessary adapter gem to the Gemfile.", e.backtrace
                end

                No connection pool for ActiveRecord::Base

                Extracted source (around line #570):
                568
                569
                570
                571
                572
                573
                              
                def retrieve_connection(klass) #:nodoc:
                pool = retrieve_connection_pool(klass)
                raise ConnectionNotEstablished, "No connection pool for #{klass}" unless pool
                conn = pool.connection
                raise ConnectionNotEstablished, "No connection for #{klass} in connection pool" unless conn
                conn

                -
                Edité par darkodeur 27 mars 2019 à 10:09:02

                • Partager sur Facebook
                • Partager sur Twitter
                  29 mars 2019 à 17:36:36

                  Bonjour

                  Je suis bloqué partie 3, étape 4 du cours

                  J'ai copié collé le def update dans books-controller, malheureusement ça je met une erreur

                  "books_controller.rb:34: syntax error, unexpected keyword_end, expecting end-of-input"

                  Le contenu du fichier book.rb et books_controller.rb sont exactement les mêmes que le cours, mais ça me met un poroblème 

                  Le truc c'est que si dans books_controller j'enlève le if, l'erreur ligne 34 disparait, si je remet le if, elle réapparaît, 

                  alors que an regarder sur internet j'ai bien une structure comme ceci :

                  "

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

                  "



                  Je ne sais plus quoi faire, même en recopiant le cours ça plante, c'est un comble !

                  J'espère que des bonne âmes m'aideront car la je sèche complet

                  Ps : j'aurais bien mis du code en balise, mais ça ne semble pas fonctionner

                  -
                  Edité par CltRg 15 avril 2019 à 15:00:19

                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 avril 2019 à 15:49:42

                    Hello tu peut mettre à dispo l'ensemble de ton fichier app/controllers/books_controller.rb ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      5 avril 2019 à 18:21:26

                      @Jsuisouf tu utilises probablement Rails 5, où par défaut les belongs_to sont obligatoires. Tu peux changer cela en faisant :

                      class Book < ActiveRecord::Base
                      belongs_to :category, required: false
                      end

                      @darkodeur sqlite est usuellement installé par défaut sur mac. Si ce n'est pas le cas, essaye de faire brew install sqlite.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        15 avril 2019 à 14:59:26

                        Timeuhmeuh a écrit:

                        Hello tu peut mettre à dispo l'ensemble de ton fichier app/controllers/books_controller.rb ?


                        Bonjour

                        voici l'ensemble du code 

                        # 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
                        
                          def create
                            Book.create title: params[:title], category_id: params[:category_id]
                            redirect_to "/books"
                          end
                        end


                        -
                        Edité par CltRg 15 avril 2019 à 16:24:55

                        • Partager sur Facebook
                        • Partager sur Twitter
                          18 avril 2019 à 15:27:43

                          Bonsoir a tous,

                          J'aimerai savoir si c'est possible que le nom des colonnes soit en français et garder les nom des tables en anglais. Parce que j'ai du mal a trouver le nom des colonnes exacte en anglais.

                          Francel

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Francel
                            18 avril 2019 à 15:36:39

                            Le nom est celui que tu donne, si tu veux faire du Franglais, tu peux, mais c'est pas top.

                            Sur une classe choisi bien entre l'anglais et le francais, surtout si c'est sur un domaine specifique comme le domaine publique.

                            • Partager sur Facebook
                            • Partager sur Twitter

                            Architecte logiciel - Software craftsmanship convaincu.

                              31 mai 2019 à 22:38:49

                              Bonjour,

                              Je bloque dans l'activité de la seconde partie où Julien nous demande d'implémenter les commentaires dans le blog.

                              Tout (ou presque) fonctionne correctement.

                              J'ai mis en place des validations pour rendre la saisie d'un auteur et d'un contenu obligatoire pour chaque commentaire, par contre je n'arrive pas à récupérer les erreurs dans le code, alors que cela fonctionne bien dans la console.

                              J'ai fait quelque chose que je ne pense pas correct, c'est créer la fonction create_comment dans le contrôleur de l'article. J'ai bien peur que ce soit là le problème qui me dérange.

                              La question que je me pose est la suivante.

                              Est-ce qu'il faut créer un contrôleur pour les commentaires ?

                              En d'autres termes, pour élargir la question, est-ce que chaque classe d'une base de donnée est censée avoir son propre contrôleur ?

                              Y a-t-il des bonnes pratiques à respecter sur ce point ?

                              Si je me pose cette question, c'est que je pars du principe qu'un contrôleur fait le lien entre un modèle et une vue, mais dans le cas des commentaires, je n'ai pas de vue définie parce que les commentaires s'affichent uniquement conjointement à un article.

                              Merci d'avance pour vos réponses.

                              Vincent

                              -
                              Edité par vincent48 31 mai 2019 à 22:47:40

                              • Partager sur Facebook
                              • Partager sur Twitter

                              Vincent ERHART

                              Formateur / Développeur web

                                4 juin 2019 à 17:20:52

                                Bonjour Vincent, techniquement parlant, les deux solutions (create_comment dans un controller existant ou create classique dans un controlleur dédié) fonctionneront, et passer par un nouveau controller sera plus élégant – la règle générale étant de privilégier des classes standardisées que d'avoir de grands pavés dans un même fichier.

                                Concernant le problème spécifique des erreurs, je suspecte qu'une redirection ait lieu entre la tentative de sauvegarde et l'affichage de la vue : comme les erreurs d'un objet de sont pas persistées en base, elles sont alors perdues. Un render à la place d'une redirection sera probablement la solution.

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  4 juin 2019 à 20:03:10

                                  Merci je vais essayer tout cela.

                                  V

                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Vincent ERHART

                                  Formateur / Développeur web

                                    5 juin 2019 à 16:34:00

                                    Bonjour,

                                    J'ai appris RoR sur ce site, et le cours est plutôt bien. Cependant, il manque parfois certains détails. Par exemple, juste pour créer la premier page, on nous fait lancer la commande "rails generate controller pages home" sans expliquer à quoi servent les différents éléments de la commande. Il m'a fallu aller voir sur d'autres sites pour l'apprendre.

                                    Deux autres détails (qui n'influent pas sur la qualité du cours) : durant les vidéos, on dirait un robot. J'ai l'impression d'entendre parler un robot avec une voix d'humain. Et ensuite, l'accent anglais. Soit on prononce en anglais, soit on prononce en français. Le mot "pages", soit on le lit en français, soit en anglais. Mais entendre "Pagise" est plutôt frustrant..

                                    Et enfin : pourquoi une note sur l'utilisation de Kaminari juste après avoir dit qu'il en existe plusieurs et qu'on utilise celle qu'on souhaite ?

                                    M'enfin bref. A part cela, le cours est de bonne qualité, même si j'ai eu souvent besoin d'aller sur internet pour avoir des réponses ou corriger des bugs.

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      5 juin 2019 à 22:16:58

                                      Pour ma part je trouve le cours vraiment très très bien, excellent même. Juste ce qu'il faut pour avoir des notions de base et les activités proposées nous forcent à chercher nous-même pour nous améliorer et développer nos compétences.

                                      Et concernant par exemple la commande "rails generate controller pages home", tout n'est pas dit, et c'est vraiment très bien comme ça. Ca nous force à aller chercher par nous-même si vraiment nous avons envie de savoir. Et c'est ça une vraie formation. Nous devons nous auto-former, donc le fait que tout ne soit pas explicite est une bonne chose.

                                      Voilà, je voulais juste apporter mon commentaire au dernier post.

                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Vincent ERHART

                                      Formateur / Développeur web

                                        6 juin 2019 à 15:02:06

                                        Bonjour Vincent,

                                        Je vous remercie de votre réponse et je comprends votre point de vue. Cependant, pour quelqu'un comme moi qui suis étudiant en informatique, lorsque je suis en cours, je n'aime pas apprendre la chose "brut" et demande souvent davantage de détails à mon professeur (il ne me dirait pas d'aller voir moi-même sur internet, et serait probablement content que quelqu'un lui pose la question), c'est pour ça que j'aurais aimé que le professeur de ce cours nous donne aussi les détails (pas dans les vidéos, afin de les rendre les plus simples possibles, mais au moins dans les explications écrites).

                                        Sinon, le cours est excellent, en effet ! Il m'a permis de très rapidement prendre en main Ruby et sans difficulté, et totalement gratuitement !

                                        (Au passage, la voix du professeur me fait penser à celle du JeanBaptisteShow sur Youtube)

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          6 juin 2019 à 18:59:42

                                          Oui je comprends votre point de vue. Seulement là vous êtes sur OpenClassrooms et non devant un professeur auquel vous pouvez poser des questions.

                                          Les modalités d'apprentissage en distanciel doivent obligatoirement impliquer l'apprenant en l'amenant à réfléchir, à rechercher, à se tromper, ... sinon l'apprentissage est moins efficace.

                                          Mais je suis content que vous aussi vous ayiez trouvé ce cours excellent.

                                          Au plaisir.

                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          Vincent ERHART

                                          Formateur / Développeur web

                                            10 juin 2019 à 22:12:45

                                            Bonjour,

                                            Je suis en train de suivre le cours "Continuez avec Ruby on Rails". Je fais l'activité finale et j'ai donc utilisé le scaffolding pour construire les classes et la base de données.

                                            Le problème que je rencontre est le suivant. Dans les vues, il y a par exemple dans index.html.erb les lignes suivantes :

                                            <p id="notice"><%= notice %></p>
                                            
                                            <h1>Listing Advertisements</h1>
                                            
                                            ...
                                            
                                            <%= link_to 'New Advertisement', new_advertisement_path %>

                                            La dernière ligne renvoie le message d'erreur suivant :

                                            undefined local variable or method `new_advertisement_path' for #<#<Class:0x0000564e3edbccb0>:0x00007f1835a44170>

                                            Ce problème est survenu lorsque j'ai ajouté ceci dans le routeur :

                                            , only: [:index, :create, :show, :update, :destroy]

                                            Si j'enlève cela, ça fonctionne, sinon ça ne fonctionne pas. Alors comment garder ce only et corriger le problème ?

                                            Si vous avez une idée je suis preneur.

                                            Merci d'avance pour votre retour.

                                            Vincent

                                            -
                                            Edité par vincent48 11 juin 2019 à 11:25:55

                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            Vincent ERHART

                                            Formateur / Développeur web

                                              11 juillet 2019 à 18:55:13

                                              Bonjour, je viens de voir qu'il est préférable d'utiliser rails sur mac os mais j'ai qu'un pc sous windows...

                                              je voudrais savoir en utilisant ce truc https://aws.amazon.com/fr/cloud9/?hp=tile&so-exp=below

                                              je pourrai suivre le cours sans problème ? 

                                              -
                                              Edité par Wika.dev 11 juillet 2019 à 18:56:04

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                11 juillet 2019 à 18:56:49

                                                C'est pas pratique de coder dans le cloud.

                                                Pourquoi ne pas utiliser Linux au pire ?

                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                Architecte logiciel - Software craftsmanship convaincu.

                                                  11 juillet 2019 à 20:13:56

                                                  necros211 a écrit:

                                                  C'est pas pratique de coder dans le cloud.

                                                  Pourquoi ne pas utiliser Linux au pire ?


                                                  Pourquoi au pire ? Linux n'est pas une bonne solution ?

                                                  J'avoue que je suis un peu ironique ;) ... je ne travaille que sur linux chez moi. J'ai depuis longtemps radié Windows.

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter

                                                  Vincent ERHART

                                                  Formateur / Développeur web

                                                    11 juillet 2019 à 20:43:35

                                                    C'est une façon de parler.

                                                    Je ne travail que sous Archlinux pour ma part ^^ 

                                                    Mais il avais l'air de vouloir un Mac 

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter

                                                    Architecte logiciel - Software craftsmanship convaincu.

                                                      12 juillet 2019 à 10:27:45

                                                      bon ok je vais voir si je peux installer kali linux a coter de windows ... au pire sur un raspberry :p

                                                      le truc c'est que c'est pas facile de changer c'est habitude, j'ai toujours étais sur windows depuis l'enfance jamais sur mac et linux :)

                                                      -
                                                      Edité par Wika.dev 12 juillet 2019 à 10:46:25

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        12 juillet 2019 à 11:04:18

                                                        C'est un mauvais choix ^^

                                                        Kali linux est fait pour que l'utilisateur soit Root, et pour du dev ce n'est pas adaptee.

                                                        Kali Linux est plus une trousse a outil que tu met dans une VM ou sur un objet transportable tel qu'un RPI.

                                                        Je te conseille plus un Debian ou un Manjaro.

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter

                                                        Architecte logiciel - Software craftsmanship convaincu.

                                                          12 juillet 2019 à 13:13:40

                                                          Moi je te conseillerais plutôt Ubuntu.

                                                          Pour ma part je trouve que Ubuntu est un OS stable et ergonomique.

                                                          Après c'est juste une question de choix.

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          Vincent ERHART

                                                          Formateur / Développeur web

                                                            12 juillet 2019 à 14:07:11

                                                            Ubuntu est un Debian
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            Architecte logiciel - Software craftsmanship convaincu.

                                                              12 juillet 2019 à 14:13:11

                                                              ok merci les gars va pour ubuntu alors  :D
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              MOOC Ruby on Rails

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown