Je ne comprend pas dans la correction du TP final miniblog J'ai un correcteur qui me met Très bien, attention il manque un fichier Javascript => ActionController::RoutingError (No route matches [GET] "/javascripts/default.js"): Précision j'ai rendu le TP en in cluant toutes les fonctions qu nous avions vu Ajout, suppresion modification, pagination
https://github.com/ggavioli/miniblogP2.git
j'ai repassé tout votre cours j'ai pas trouvé ceci
Dans la première partie de la formation, il nous est conseillé d'utiliser Atom comme IDE. Je sais que le choix d'un IDE est personnel et dépend de nos habitudes et de nos goûts. J'ai l'habitude d'utiliser Sublime Text. Qu'est ce qu'Atom a de plus?
J'ai également un problème avec le javascript. Dans mon layout, la ligne suivante me génère une erreur :
TypeError: Cet objet ne gère pas cette propriété ou cette méthode
(in C:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js.coffee)
En modifiant 'application' par 'default', l'erreur disparaît.
J'ai un problème d'installation sous Windows. J'ai installé ruby, le devkit et rails, mais je ne peux rien faire avec le bundle car le gem json ne veut pas s'installer... j'ai ce message d'erreur dans l'invite de commandes :
An error occurred while installing json (1.8.3), and Bundler cannot con
Make sure that `gem install json -v '1.8.3'` succeeds before bundling.
J'ai tenté d'installer séparément json mais ça ne marche jamais... des messages de ce genre s'affichent :
or: cast to pointer from integer of different size [-W
or: cast to pointer from integer of different size [-W
on 'filename_cmp_impl':
ror: cast to pointer from integer of different size [-
]
ror: cast to pointer from integer of different size [-
]
ror: cast to pointer from integer of different size [-
]
ror: cast to pointer from integer of different size [-
Comment ce fait-il ?
merci d'avance
- Edité par AlphonseDodu 24 décembre 2015 à 22:43:25
Pour résoudre ce problème, va dans le fichier registry.rb que tu trouveras normalement ici : ...\RailsInstaller\Ruby2.1.0\lib\ruby\2.1.0\win32\registry.rb
j'avais essayé ceci, mais cela engendrait encore d'autres erreurs... j'ai cru comprendre que ruby on rails n'était pas très copain avec windows, j'ai donc décidé de m'orienter vers une solution cloud pour mes développements rails
Je ne comprend pas dans la correction du TP final miniblog J'ai un correcteur qui me met Très bien, attention il manque un fichier Javascript => ActionController::RoutingError (No route matches [GET] "/javascripts/default.js"): Précision j'ai rendu le TP en in cluant toutes les fonctions qu nous avions vu Ajout, suppresion modification, pagination
https://github.com/ggavioli/miniblogP2.git
D'un point de vu résultat attendu, l'application est correcte. Cependant, regardez cette ligne :
Le fichier JS inclut s'appelle default, alors que dans le dossier des fichiers javascript il s'appelle application (https://github.com/ggavioli/miniblogP2/tree/master/app/assets/javascripts). Comme on n'a pas besoin de JS pour réussir le TP, ce n'est pas gênant. Par contre, si l'on regarde les logs du navigateur (avec Firebug sur Firefox par exemple), on verra que le site déclenche une erreur en cherchant un fichier qui n'existe pas. Rien de grave mais ça mériterait d'être corrigé, en modifiant le mot default par application. Ce mot clé default existait avec Rails 3, ce layout a peut-être été écrit à l'aide d'une vieille documentation ?
Thomas D a écrit:
Dans la première partie de la formation, il nous est conseillé d'utiliser Atom comme IDE. Je sais que le choix d'un IDE est personnel et dépend de nos habitudes et de nos goûts. J'ai l'habitude d'utiliser Sublime Text. Qu'est ce qu'Atom a de plus?
Les deux sont disponibles sur tous les systèmes d'exploitation et sont très bons pour faire du Rails (qui n'impose aucun éditeur en particulier). Cela dit, Atom est gratuit et open source alors que SublimText coûte 70 €, qui est finalement le critère qui m'a fait préférer le premier. À titre personnel j'utilise vim, et je recommande d'essayer plusieurs IDR et choisir celui avec lequel vous seriez le plus à l'aise, tout simplement.
J'utilise cloud9 pour développer avec Ruby on Rails, et j'ai un problème avec l'utilisation de kaminari. La fonction " page " n'est pas reconnue. Ce problème n'est pas que pour kaminari, j'ai essayé d'autres gems (de recherche, par exemple), et j'ai le même problème... les fonctions ne sont pas reconnues. De quoi cela peut-il venir ?
Voici le message d'erreur qui s'affiche :
undefined method `page' for New(id: integer, title: string, category_id: integer):Class
La gem est pourtant installée, je pense... j'ai ajouté la ligne dans le gemfile puis j'ai fait un bundle install qui s'est bien passé.
Merci
- Edité par AlphonseDodu 28 décembre 2015 à 21:29:58
j'ai lu rapidement ton nouveau cours, et je me disais qu'il pourrait être pas mal d'avoir un chapitre à la fin " Envoyer votre site sur le web ", comme l'a fait Mathieu Nebra dans ces cours html/css et php... En effet, j'ai fait quelques recherches sur internet, et je n'ai pas vraiment compris comment héberger un site rails... Cela semble bien compliqué et très différent de ce que l'on peut avoir l'habitude de faire pour du php...
@AlphonseDodu : je n'ai jamais utilisé Cloud9, je ne sais pas le problème vient de là. Quelle est la ligne de code qui provoque cette erreur ? Concernant la mise en production, c'est en effet un sujet complexe. Pour faire cours, il y a deux grandes voies :
* héberger soi-même son application sur un serveur dédié.
* contrairement à PHP, il n'y a pas de notion de serveur mutualisé / ftp.
Pour l'hébergement sur un serveur dédié, il faut que l'application y soit présente dans un répertoire, de faire son bundle install et rake db:migrate normalement, puis de lancer le serveur ainsi : rails server -d -b 0.0.0.0. On y accède ensuite via son navigateur à l'adresse http://ip-du-serveur:3000
L'option -d permet de lancer le serveur en arrière plan, ainsi il continuera de fonctionner une fois la connexion au serveur coupé. L'option -b 0.0.0.0 permet d'indiquer que les adresses distantes (= visiteurs) ont le droit d'afficher l'application.
Il y a plein de petites choses à savoir en plus pour faire les choses proprement, mais avec ça il est déjà possible d'avoir sur le net ce que l'on est capable d'avoir chez soit. Je compte faire une partie de cours spécifiquement sur ce sujet, mais ça peut prendre du temps.
Les cookies fonctionnent techniquement comme les sessions. Pour les captcha, il n'y a rien de plus à savoir techniquement, il faut le programmer soi-même ou trouver un outil qui le fait à notre place (une gem ?)
Je suis en train de suivre le MOOC, et je rencontre un petit problème au niveau d'une redirection...
Je travaille sous mac OSX 10.6 (snow leopard). J'ai installé Rails via le package rubystack de bitnami. (je ne peux pas installer rvm car mon OS ne supporte pas la version d'xcode minimale pour)
Version de Ruby: ruby 2.0.0p647
Je suis au chapitre 5 de la partie 2 "Ajouter un formulaire de création"
Quand je rentre un nouveau livre via le formulaire il ressort l'erreur suivante :
wrong number of arguments (2 for 1)
il cible la ligne avec le redirect:
redirect_to "/books"
Le livre est bien ajouté, la redirection semble ne pas fonctionner...
#le fichier view books/index.html.erb <h1>Liste des livres</h1>
<% @books.each do |book| %>
<p><%= book.title %></p>
<% end %>
<%= form_tag "/books", method: "post" do %>
<input type="text" name="title" />
<input type="submit" value="Ajouter le livre" />
<% end %>
#le controleur
class BooksController < ApplicationController
def index
@books = Book.all
end
def create
Book.create title: params[:title]
redirect_to "/books"
end
end
#les routes
get 'books' => 'books#index'
post 'books' => 'books#create'
Une idée ou un indice?
Merci d'avance
EDIT - résolu
le problème venait d'une version de turbolinks trop ancienne.
La version du Turbolinks était trop ancienne. Le Turbolinks est (si je ne dis pas de bêtise) ce qui permet d'améliorer et d'accélérer la navigation et l'affichage de l'application Rails en la "transformant" en application JS.
Il faut donc upgrade la version du turbolinks dans le Gemfile avec la ligne suivante :
gem 'turbolinks', '~>2.5.3'
Je te laisse compléter A. Peche pour les étapes d'install que tu as fait en plus.
j'ai executé le script .sh, installé ruby et Rails sur mon ubuntu, mais la commande "rails server" renvoie
kevin@kevin-1015CX:~/site$ rails server
/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- bundler/setup (LoadError)
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/kevin/site/config/boot.rb:4:in `<top (required)>'
from bin/rails:3:in `require_relative'
from bin/rails:3:in `<main>'
le cour a l'air intéressant, mais je suis bloqué là comment faire ?
- Edité par Kevin-Miguet 23 janvier 2016 à 18:24:05
Bonjour à tous, dans l'exercice pour ajouter des commentaires sous les articles, je ne vois pas comment récupérer l'id de mon article. J'ai créé un formulaire sur ma page show.html.erb. Déjà je ne suis pas sûr d'avoir tout bien écrit dans la balise d'ouverture form_tag :
<h1>Article « <%= @article.title %> »</h1>
<p><%= @article.content %></p>
<p><a href="/">Retour à la liste des articles</a></p>
<%= form_tag method: 'post' do %>
<textarea name="comment" placeholder="Écrivez votre commentaire..." rows="5" cols="50"></textarea>
<p><input type="text" name="pseudo" placeholder="votre pseudo" /></p>
<input type="submit" value="Envoyer" />
<% end %>
Ensuite dans routes.rb j'ai :
get 'articles/:id' => 'articles#show'
post 'articles/:id' => 'articles#create'
Dans articles_controller.rb ma fonction create :
def create
Comment.create pseudo: params[:pseudo], comment: params[:comment], article_id: #Je veux l'id de mon article ici!
end
Voici le db/migrate de mes articles :
class TableArticles < ActiveRecord::Migration
def change
create_table :articles
add_column :articles, :title, :string
add_column :articles, :content, :text
end
end
Et celui de mes commentaires :
class TableComments < ActiveRecord::Migration
def change
create_table :comments
add_column :comments, :pseudo, :string
add_column :comments, :comment, :text
add_column :comments, :article_id, :integer #La fameuse variable dans laquelle je veux stocker l'id de l'article.
add_index :comments, :article_id
end
end
Bonjour, pourriez-vous me montrer comment stocker des images dans ma base de données? ce serait bien de l'ajouter au cours, et de détailler chaque type de données dans un SGBD pour rails. Je trouve que ça manque au cours.
Bonjour à tous, dans l'exercice pour ajouter des commentaires sous les articles, je ne vois pas comment récupérer l'id de mon article. J'ai créé un formulaire sur ma page show.html.erb. Déjà je ne suis pas sûr d'avoir tout bien écrit dans la balise d'ouverture form_tag :
<h1>Article « <%= @article.title %> »</h1>
<p><%= @article.content %></p>
<p><a href="/">Retour à la liste des articles</a></p>
<%= form_tag method: 'post' do %>
<textarea name="comment" placeholder="Écrivez votre commentaire..." rows="5" cols="50"></textarea>
<p><input type="text" name="pseudo" placeholder="votre pseudo" /></p>
<input type="submit" value="Envoyer" />
<% end %>
Ensuite dans routes.rb j'ai :
get 'articles/:id' => 'articles#show'
post 'articles/:id' => 'articles#create'
Dans articles_controller.rb ma fonction create :
def create
Comment.create pseudo: params[:pseudo], comment: params[:comment], article_id: #Je veux l'id de mon article ici!
end
Voici le db/migrate de mes articles :
class TableArticles < ActiveRecord::Migration
def change
create_table :articles
add_column :articles, :title, :string
add_column :articles, :content, :text
end
end
Et celui de mes commentaires :
class TableComments < ActiveRecord::Migration
def change
create_table :comments
add_column :comments, :pseudo, :string
add_column :comments, :comment, :text
add_column :comments, :article_id, :integer #La fameuse variable dans laquelle je veux stocker l'id de l'article.
add_index :comments, :article_id
end
end
Parce que quand tu es sur ta page articles/:id (si l'article est le numéro 1, ce sera articles/1 ) normalement le params[:id] vaut 1, si je ne me trompe pas ? Donc ça t'enregistre la bonne valeur pour ton commentaire ?
Personnellement je tiens à remercier énormément Julien pour ce cours, j'ai très hate que la suite sorte officiellement.
A propos de Ruby sous Windows : j'ai voulu tenter d'utiliser Ruby sur windows, alors NON, NON, MAUVAISE IDEE, NE SURTOUT PAS FAIRE. J'ai insisté quelques temps avant de me rendre compte que je signais pour des prises de têtes infinies :
a) C'est compliqué à installer de base, ça marche qu'a peu près
b) Les chemins d'accès sont un bordel pas possible, notamment a cause des chemins windows qui utilisent \ plutot que /
c) Ayant commencé à travailler sous Debian pour uploader mes projets sur serveur privé, il vaut mieux se mettre à linux le plus vite possible, comprendre comment ça marche.
d) L'utilisation du terminal est infiniment plus ergonomique sur linux, et il faudra la connaitre sur le bout des doigts donc autant commencer vite
e) Il y a enormément + de support pour les soucis de développement sur linux que sur windows
f) Installer ruby sans un version manager est source de gros problème, et ces version managers sont ultra chiants a installer sous windows
Etc Etc, donc pour des débutants comme nous, croyez moi vaut mieux laisser tomber windows pour le boulot et aller sur linux. Moins d'erreurs bêtes d'incompatibilités = un apprentissage + rapide
Personnellement j'ai acheté un SSD externe peu cher où je stock windows 10, je boot dessus pour le gaming, et sur mon DD principal Linux mint, je boot dessus pour le travail. Les avantages de 2 OS complémentaires sans les inconvénients ou les bugs potentiels d'un dual boot.
Attention à un truc chiant, la gestion de l'horloge interne de l'ordinateur n'est pas pareille entre windows et linux, vous aurez 1h de retard sous windows, ça a faillit me mettre en retard plein de fois. Hélas ça ne se corrige pas.
@KroBlan : ajoute un champ caché dans ton formulaire dont le nom est (par exemple) article_id, et dont la valeur est @article.id. Ainsi tu pourras récupérer cette valeur dans ton contrôleur avec params[:article_id]
× 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.
lesjoiesducode / Les points-virgules en JavaScript
lesjoiesducode / Les points-virgules en JavaScript
lesjoiesducode / Les points-virgules en JavaScript
In vino Veritas, in Aqua Sanitas
In vino Veritas, in Aqua Sanitas
lesjoiesducode / Les points-virgules en JavaScript
In vino Veritas, in Aqua Sanitas
Semper Improvidus
Semper Improvidus