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)
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. "
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)
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):
175176177178179180
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):
568569570571572573
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
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
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.
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.
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.
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.
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.
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)
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.
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 :
× 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.
Architecte logiciel - Software craftsmanship convaincu.
Vincent ERHART
Formateur / Développeur web
Vincent ERHART
Formateur / Développeur web
Vincent ERHART
Formateur / Développeur web
Vincent ERHART
Formateur / Développeur web
Vincent ERHART
Formateur / Développeur web
Architecte logiciel - Software craftsmanship convaincu.
Vincent ERHART
Formateur / Développeur web
Architecte logiciel - Software craftsmanship convaincu.
Architecte logiciel - Software craftsmanship convaincu.
Vincent ERHART
Formateur / Développeur web
Architecte logiciel - Software craftsmanship convaincu.