ExecJS::RuntimeError des Utilisateurs#index (RoR)
Juste couru un "générer échafaudage Utilisateurs ... de la commande".
Puis-je aller à localhost:3000/users/
et voir ceci:
ExecJS::RuntimeError in Users#index
Showing C:/Users/TheOnlyUser/Desktop/NMS/nms2/app/views/layouts/application.html.erb where line #6 raised:
(in C:/Users/TheOnlyUser/Desktop/NMS/nms2/app/assets/javascripts/ads.js.coffee)
Extracted source (around line #6):
3: <head>
4: <title>Nms2</title>
5: <%= stylesheet_link_tag "application", :media => "all" %>
6: <%= javascript_include_tag "application" %>
7: <%= csrf_meta_tags %>
8: </head>
9: <body>
Rails.root: C:/Users/TheOnlyUser/Desktop/NMS/nms2
Application Trace | Framework Trace | Full Trace
app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___753556572_43068540'
app/controllers/users_controller.rb:7:in `index'
...
Ce que tout cela signifie?
Mise à JOUR:
Que sur Windows 8. Windows 7 ne donne pas ces erreurs.
- Pouvons-nous voir votre Gemfile veuillez
- ressemble étonnament à votre manque un Bijou..
Vous devez vous connecter pour publier un commentaire.
Mon ami a essayé un Rails de tutoriel sur Win 8 RTM il y a quelques mois et a couru dans cette erreur. Vous ne savez pas si ce problème existe dans Windows 7, mais cela peut aider.
Options:
1) l'élimination des
//= require_tree .
/Ignorer le problème - Cette ligne ne devrait pas être à l'origine d'un problème en premier lieu. Il y a un réel problème avec ExecJS fonctionne correctement avec le runtime JavaScript dans votre système et les supprimer cette ligne est juste ignorer ce fait.2) l'Installation de Node.js /fuir - Beaucoup de gens semblent juste la fin de l'installation Node.js et en l'utilisant à la place de la runtime JavaScript déjà sur leur système. Alors que c'est une option valable, il faut aussi un logiciel supplémentaire et qu'elle évite le problème d'origine, qui est que ExecJS ne fonctionne pas correctement avec le runtime JavaScript déjà sur votre système. Si le code JavaScript d'exécution sur votre système est censé fonctionner, pourquoi ne pas faire le travail au lieu d'installer un autre logiciel? Selon le ExecJS créateur, le moteur d'exécution déjà intégré dans Windows est en fait pris en charge...
3) en Fait pour résoudre le problème /Apprentissage - Utiliser les connaissances des options 1 et 2 pour rechercher d'autres solutions. Je ne peux pas vous dire combien de pages j'ai fermé en voyant les options 1 ou 2 a été la solution retenue avant de trouver de l'information sur le problème de base que nous avions. La seule raison pour laquelle nous avons gardé la recherche était que nous ne pouvions en croire les Rails, l'équipe de (1) insérer une ligne de code dans chaque échafaudage généré projet qui a causé un problème, ou (2) nous demandent d'installer de logiciel supplémentaire juste pour exécuter cette ligne de code par défaut. Et donc, nous nous sommes finalement arrivés à un correctif pour résoudre notre problème de base (vos miles peut varier).
Le Correctif qui a fonctionné pour nous:
Sur le système d'avoir des problèmes, trouver des ExecJS de runtimes.rb fichier. Il ressemble à cette. Faites une copie du fichier de sauvegarde. Ouvrez le fichier original runtimes.rb pour l'édition. Trouver la section qui commence avec la ligne de
JScript = ExternalRuntime.new(
. Dans cette section, sur la ligne contenant:command => "cscript //E:jscript //Nologo //U",
- supprimer le//U
seulement. Puis sur la ligne contenant:encoding => 'UTF-16LE' # CScript with //U returns UTF-16LE
- changement UTF-16LE àUTF-8
. Enregistrer les modifications dans le fichier. Cette section du fichier doit indiquer:Prochain, arrêter puis redémarrer votre serveur Rails et actualisez la page dans votre navigateur qui a produit l'erreur d'origine. J'espère que la page se charge sans erreur maintenant. Voici la ExecJS problème de thread où nous avons posté nos résultats: https://github.com/sstephenson/execjs/issues/81#issuecomment-9892952
Si cela ne corrige pas le problème, vous pouvez toujours remplacer la modification de temps de fonctionnement.rb avec la copie de sauvegarde que vous (je l'espère) fait et tout sera revenu à la case départ. Dans ce cas, envisager l'option 3 et continuer à chercher. Laissez-nous savoir ce qui fonctionne pour vous.. sauf si c'est de retirer le require_tree ou de l'installation node.js, il ya beaucoup de qui va autour déjà. 🙂
~/.rbenv/versions/RUBY_VERSION/lib/ruby/gems/RUBY_VERSION/gems/execjs-2.0.2/lib/execjs/
avec RUBY_VERSION être votre version de Ruby installé.Comme les commentateurs ont dit, vous êtes probablement manquant un bijou. Essayez d'ajouter les éléments suivants à votre gemfile:
Et exécuter
bundle install
Au début, je suis allé pour la solution 3 ci-dessus par Kevin P et tout fonctionnait très bien sur mon ordinateur Windows 8.
Après un MS de mise à jour de la nuit dernière (8/19/13) je ne pouvais même pas le rendu de la page d'accueil de mon application rails.
J'ai installé node.js et cela a fonctionné, donc je suis en utilisant une solution à 2 maintenant.
De l'édition de logiciels d'exécution.rb résolu le problème sur Win 8.1
La quikest façon de résoudre le problème est l'Installation de l'Node.js. Ruby permettrait de détecter automatiquement et Vous n'aurez plus le JS erreurs d'exécution
runtimes.rb fichier
De travail dans Windows 8.1
bundle show execjs
J'ai eu le même problème, et la solution 3 par Kevin P a fonctionné pour moi (modification du temps de fonctionnement.rb fichier).
Ma configuration au moment de l'application de la solution est comme suit:
OS: Windows 8.1
Version de Ruby: 1.9.3p484
Rails version: 3.2.14
Le moyen le plus rapide j'ai résolu ce problème était celui-ci:
gem 'therubyracer', '0.12.1'
bundle mise à jour
bundle install
J'espère que cela aidera.