rails programerror pioneers pages not index home bootstrap ruby-on-rails windows turbolinks execjs

ruby on rails - pioneers - Rails ExecJS:: ProgramError en las páginas#inicio?



execjs:: programerror in pioneers index (18)

Al iniciar una nueva aplicación, cuando creo una página de controlador de inicio e intento ir al host local: 3000 / páginas / inicio, aparece el siguiente error:

Showing c:/Users/Doesha/desktop/pinplug/app/views/layouts/application.html.erb where line #6 raised: TypeError: Object doesn''t support this property or method (in c:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js.coffee)

archivo application.html.erb:

<!DOCTYPE html> <html> <head> <title>Pinplug</title> <%= stylesheet_link_tag ''application'', media: ''all'', ''data-turbolinks-track'' => true %> <%= javascript_include_tag ''application'', ''data-turbolinks-track'' => true %> <%= csrf_meta_tags %> </head> <body> <%= yield %> </body> </html>

archivo application_controller.rb:

class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception end

archivo pages_controller.rb:

class PagesController < ApplicationController def home end end

rutas.rb archivo:

Rails.application.routes.draw do get ''pages/home'' # The priority is based upon order of creation: first created -> highest priority. # See how all your routes lay out with "rake routes". # You can have the root of your site routed with "root" # root ''welcome#index'' # Example of regular route: # get ''products/:id'' => ''catalog#view'' # Example of named route that can be invoked with purchase_url(id: product.id) # get ''products/:id/purchase'' => ''catalog#purchase'', as: :purchase # Example resource route (maps HTTP verbs to controller actions automatically): # resources :products # Example resource route with options: # resources :products do # member do # get ''short'' # post ''toggle'' # end # # collection do # get ''sold'' # end # end # Example resource route with sub-resources: # resources :products do # resources :comments, :sales # resource :seller # end # Example resource route with more complex sub-resources: # resources :products do # resources :comments # resources :sales do # get ''recent'', on: :collection # end # end # Example resource route with concerns: # concern :toggleable do # post ''toggle'' # end # resources :posts, concerns: :toggleable # resources :photos, concerns: :toggleable # Example resource route within a namespace: # namespace :admin do # # Directs /admin/products/* to Admin::ProductsController # # (app/controllers/admin/products_controller.rb) # resources :products # end end

Gemfile:

source ''https://rubygems.org'' # Bundle edge Rails instead: gem ''rails'', github: ''rails/rails'' gem ''rails'', ''4.2.0'' # Use sqlite3 as the database for Active Record gem ''sqlite3'' # Use SCSS for stylesheets gem ''sass-rails'', ''~> 5.0'' # Use Uglifier as compressor for JavaScript assets gem ''uglifier'', ''>= 1.3.0'' # Use CoffeeScript for .coffee assets and views gem ''coffee-rails'', ''~> 4.1.0'' # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem ''therubyracer'', platforms: :ruby gem ''execjs'', ''~> 2.2.2'' # Use jquery as the JavaScript library gem ''jquery-rails'' # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks gem ''turbolinks'' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem ''jbuilder'', ''~> 2.0'' # bundle exec rake doc:rails generates the API under doc/api. gem ''sdoc'', ''~> 0.4.0'', group: :doc # Use ActiveModel has_secure_password # gem ''bcrypt'', ''~> 3.1.7'' # Use Unicorn as the app server # gem ''unicorn'' # Use Capistrano for deployment # gem ''capistrano-rails'', group: :development group :development, :test do # Call ''byebug'' anywhere in the code to stop execution and get a debugger console gem ''byebug'' # Access an IRB console on exception pages or by using <%= console %> in views gem ''web-console'', ''~> 2.0'' end # Windows does not include zoneinfo files, so bundle the tzinfo-data gem gem ''tzinfo-data'', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

archivo gemfile.lock:

GEM remote: https://rubygems.org/ specs: actionmailer (4.2.0) actionpack (= 4.2.0) actionview (= 4.2.0) activejob (= 4.2.0) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 1.0, >= 1.0.5) actionpack (4.2.0) actionview (= 4.2.0) activesupport (= 4.2.0) rack (~> 1.6.0) rack-test (~> 0.6.2) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.1) actionview (4.2.0) activesupport (= 4.2.0) builder (~> 3.1) erubis (~> 2.7.0) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.1) activejob (4.2.0) activesupport (= 4.2.0) globalid (>= 0.3.0) activemodel (4.2.0) activesupport (= 4.2.0) builder (~> 3.1) activerecord (4.2.0) activemodel (= 4.2.0) activesupport (= 4.2.0) arel (~> 6.0) activesupport (4.2.0) i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) arel (6.0.0) binding_of_caller (0.7.2) debug_inspector (>= 0.0.1) builder (3.2.2) byebug (3.5.1) columnize (~> 0.8) debugger-linecache (~> 1.2) slop (~> 3.6) coffee-rails (4.1.0) coffee-script (>= 2.2.0) railties (>= 4.0.0, < 5.0) coffee-script (2.3.0) coffee-script-source execjs coffee-script-source (1.9.0) columnize (0.9.0) debug_inspector (0.0.2) debugger-linecache (1.2.0) erubis (2.7.0) execjs (2.2.2) globalid (0.3.2) activesupport (>= 4.1.0) hike (1.2.3) i18n (0.7.0) jbuilder (2.2.6) activesupport (>= 3.0.0, < 5) multi_json (~> 1.2) jquery-rails (4.0.3) rails-dom-testing (~> 1.0) railties (>= 4.2.0) thor (>= 0.14, < 2.0) json (1.8.2) loofah (2.0.1) nokogiri (>= 1.5.9) mail (2.6.3) mime-types (>= 1.16, < 3) mime-types (2.4.3) mini_portile (0.6.2) minitest (5.5.1) multi_json (1.10.1) nokogiri (1.6.6.2-x86-mingw32) mini_portile (~> 0.6.0) rack (1.6.0) rack-test (0.6.3) rack (>= 1.0) rails (4.2.0) actionmailer (= 4.2.0) actionpack (= 4.2.0) actionview (= 4.2.0) activejob (= 4.2.0) activemodel (= 4.2.0) activerecord (= 4.2.0) activesupport (= 4.2.0) bundler (>= 1.3.0, < 2.0) railties (= 4.2.0) sprockets-rails rails-deprecated_sanitizer (1.0.3) activesupport (>= 4.2.0.alpha) rails-dom-testing (1.0.5) activesupport (>= 4.2.0.beta, < 5.0) nokogiri (~> 1.6.0) rails-deprecated_sanitizer (>= 1.0.1) rails-html-sanitizer (1.0.1) loofah (~> 2.0) railties (4.2.0) actionpack (= 4.2.0) activesupport (= 4.2.0) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rake (10.4.2) rdoc (4.2.0) json (~> 1.4) sass (3.4.11) sass-rails (5.0.1) railties (>= 4.0.0, < 5.0) sass (~> 3.1) sprockets (>= 2.8, < 4.0) sprockets-rails (>= 2.0, < 4.0) tilt (~> 1.1) sdoc (0.4.1) json (~> 1.7, >= 1.7.7) rdoc (~> 4.0) slop (3.6.0) sprockets (2.12.3) hike (~> 1.2) multi_json (~> 1.0) rack (~> 1.0) tilt (~> 1.1, != 1.3.0) sprockets-rails (2.2.4) actionpack (>= 3.0) activesupport (>= 3.0) sprockets (>= 2.8, < 4.0) sqlite3 (1.3.10-x86-mingw32) thor (0.19.1) thread_safe (0.3.4) tilt (1.4.1) turbolinks (2.5.3) coffee-rails tzinfo (1.2.2) thread_safe (~> 0.1) tzinfo-data (1.2015.1) tzinfo (>= 1.0.0) uglifier (2.7.0) execjs (>= 0.3.0) json (>= 1.8.0) web-console (2.0.0) activemodel (~> 4.0) binding_of_caller (>= 0.7.2) railties (~> 4.0) sprockets-rails (>= 2.0, < 4.0) PLATFORMS x86-mingw32 DEPENDENCIES byebug coffee-rails (~> 4.1.0) execjs (~> 2.2.2) jbuilder (~> 2.0) jquery-rails rails (= 4.2.0) sass-rails (~> 5.0) sdoc (~> 0.4.0) sqlite3 turbolinks tzinfo-data uglifier (>= 1.3.0) web-console (~> 2.0)

archivo application.rb:

require File.expand_path(''../boot'', __FILE__) require ''rails/all'' # Require the gems listed in Gemfile, including any gems # you''ve limited to :test, :development, or :production. Bundler.require(*Rails.groups) module Pinplug class Application < Rails::Application # Settings in config/environments/* take precedence over those specified here. # Application configuration should go into files in config/initializers # -- all .rb files in that directory are automatically loaded. # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. # config.time_zone = ''Central Time (US & Canada)'' # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. # config.i18n.load_path += Dir[Rails.root.join(''my'', ''locales'', ''*.{rb,yml}'').to_s] # config.i18n.default_locale = :de # Do not swallow errors in after_commit/after_rollback callbacks. config.active_record.raise_in_transactional_callbacks = true end end

También rebajé la gema de turbolinks de 2.3.0 a 2.2.2, pensando que la versión más nueva de la gema de turbolinks estaba causando errores en mi aplicación; obviamente eso no funcionó para mí.

¿Alguna sugerencia sobre lo que podría estar yendo mal con mi aplicación?


Acabo de cambiar la '' application '' a '' default '' en las líneas 5 y 6, y resolví. /app/views/layouts/application.html.erb .

DE:

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

A:

<%= stylesheet_link_tag ''**default**'', media: ''all'', ''data-turbolinks-track'' => true %> <%= javascript_include_tag ''**default**'', ''data-turbolinks-track'' => true %>


Debe leer las instrucciones en la página de rieles. Necesita gema ExecJS y algo de tiempo de ejecución JS.

Más práctico: 1.- Instalar algunos Runtime JS, por ejemplo node.js

2.- obtenga ExecJS gem-> gem install execjs

Explicación:

Desde la página de rieles:

"La compilación de la compresión de activos de CoffeeScript y JavaScript requiere que tenga un tiempo de ejecución de JavaScript disponible en su sistema, en ausencia de un tiempo de ejecución verá un error de ejecución durante la compilación de activos. Por lo general, Mac OS X y Windows vienen con un tiempo de ejecución de JavaScript instalado. Rails agrega el gema therubyracer al Gemfile generado en una línea comentada para nuevas aplicaciones y puede descomentar si lo necesita. therubyrhino es el tiempo de ejecución recomendado para los usuarios de JRuby y se agrega por defecto al Gemfile en las aplicaciones generadas bajo JRuby. Puede investigar todos los compatibles tiempos de ejecución en ExecJS ".

Desde hte gitHub de ExecJS:

"ExecJS le permite ejecutar código JavaScript desde Ruby. Selecciona automáticamente el mejor tiempo de ejecución disponible para evaluar su programa JavaScript, luego le devuelve el resultado como un objeto Ruby.

ExecJS admite estos tiempos de ejecución:

therubyracer - Google V8 embedded within Ruby therubyrhino - Mozilla Rhino embedded within JRuby Duktape.rb - Duktape JavaScript interpreter Node.js Apple JavaScriptCore - Included with Mac OS X Microsoft Windows Script Host (JScript) Google V8 mini_racer - Google V8 embedded within Ruby"

Léame ExecJS GitHub


En Windwos 10

Simplemente instale node.js y asegúrese de que el ejecutable del nodo esté en la variable de ruta.


En Windows 10 versión 1511, agregar gema ''coffee-script-source'', ''1.8.0'' a mi gemfile y luego ruby ​​bin / bundle update coffee-script-source desde el directorio del proyecto funcionó. NB: la versión anterior de coffee-script-source que fue reemplazada fue 1.10.0


En sus /app/views/layouts/application.html.erb líneas 5 y 6 , cambie el primer parámetro de la application a default .

También encontré el mismo problema para mi situación, no sé por qué, pero solo ocurre en Windows. La application parámetros funciona en el servidor web.


Estoy en Rails 5.1.6. Tuve el mismo problema. Como se recomendó anteriormente, degradé la gema de fuente de script de café que resolvió el problema.

# Use CoffeeScript for .coffee assets and views gem ''coffee-rails'', ''~> 4.2'' # <-- This existed already gem ''coffee-script-source'', ''1.8.0'' # <-- Adding this line solved the problem

Nota: no modifiqué el archivo application.html.rb


Finalmente lo puse a trabajar, que suspiro de alivio. Aunque no estoy exactamente seguro de qué lo hizo funcionar. Intenté todo lo siguiente. 1) Instalé node.js, le agregué coffescript npm y lo reinicié. 2) Se agregó gema para exec.js y se modificó runtime.rb para que no pueda usar el archivo de script predeterminado de Windows. Consulte este enlace sobre cómo hacer esto: [ https://github.com/sstephenson/execjs/issues/81][1] 3) Para estar seguro, también agregó rubyracer gem gem ''therubyracer'', plataformas:: ruby

En resumen, agregó dos motores de secuencias de comandos, nodejs y rubyracer, y agregó execjs para que elija el mejor motor de secuencias de comandos, pero no pueda elegir el motor de desplazamiento de Windows.

Supongo que solo instalar nodejs solo podría haber funcionado después de agregar execjs. Sin embargo, no reinicié (después de la instalación de nodejs) e intenté todas las demás cosas.


He estado teniendo este problema por un tiempo y después de haber revisado todas las respuestas en este hilo y encontrar que no tienen éxito, he decidido agregar mi solución con la esperanza de que ayude a los futuros usuarios de Rails.

He hecho todo en este hilo: cambiar la application a la default permite pasar sin un error, pero una vez que intenta usar JavaScript, se muestra un error con respecto a no poder encontrar default.js . Instalé NodeJS y lo puse en mi carpeta Ruby / bin. Eso no hizo nada, así que lo eliminé.

De hecho, puede solucionar temporalmente este problema con la solución "cambiar la application con la default ", pero es extremadamente a corto plazo. Esta solución puede funcionar para usted si no tiene intención de diseñar o agregar JavaScript a su aplicación a través de la canalización de activos de Rails. No lo he probado yo mismo, pero imagino que puede incluir JavaScript y hojas de estilo en el archivo de encabezado application.html. Pero luego pierdes la magia de Rails.

He tenido este problema en las plataformas Windows 8, Windows 10 y Ubuntu.

Lo único que lo resuelve, para mí, y aún representa el JavaScript y las hojas de estilo es cambiar primero la application a application.css para las hojas de estilo (incluso si está usando Sass / SCSS, porque todavía se compila en CSS) y la application.js para el enlace de JavaScript. Una vez hecho esto, vaya a su /assets/javascripts/application.js y elimine el // delante de //= require turbolinks .

Y ahora su aplicación debería funcionar bien.

Este es probablemente un problema más profundo con turbolinks, pero esta es una solución rápida que aún no me ha decepcionado.


Probé todas las soluciones anteriores, y la única que funcionó correctamente fue instalar node.js, agregar el directorio a la variable de entorno ''ruta'' en Windows (que se encuentra en Configuración avanzada del sistema, Variables de entorno, ruta) y luego reiniciar el computadora y servidor. Creo que las versiones posteriores de coffee-script-source deben depender de node.js, junto con otras gemas. Tuve el mismo error sin usar coffee-script-source.

Sin embargo, cambiar ''aplicación'' a ''predeterminado'' es una solución terrible, ya que simplemente elimina todo el estilo CSS de la aplicación. No lo recomiendo en absoluto.


Si está ejecutando en Windows, coffee-script-source 1.9.0 no funciona en Windows.

Cámbielo a una versión anterior agregando esta línea a su Gemfile:

gem ''coffee-script-source'', ''1.8.0''

Y luego reinstale el paquete ajustando las dependencias para la nueva versión de Gem con:

bundle update coffee-script-source


Simplemente instale NodeJS en su máquina local (asegúrese de que la entrada correspondiente se agrega a la RUTA) y agregue

gem ''execjs''

en el Gemfile .


Su problema con la joya de turbolinks así que está creando un error

Entonces, en app / views / layouts / application.html.erb cambie esto

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

de

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

y descomente la línea no.15 en app / assets / javascripts / application.js

require turbolinks

y cópielo en app / assets / stylesheets / application.css al final del archivo

A partir de esto, se ejecutarán sus CSS y JS


También tuve este problema. Entré en Sublime en mi carpeta de proyecto. Luego hizo clic en las carpetas de la aplicación, vio la carpeta, el diseño, hizo clic en application.html.erb y cambió las líneas 5 y 6 ''aplicación'' a ''predeterminada''. Funcionó muy bien. ¡Gracias por publicar su problema y gracias a quienes respondieron!

Solo quería agregar que entré en Sublime. Estoy aprendiendo y no entendí cómo acceder al archivo .erb. Solo quería ayudar a otros.


en windows coffee-script source> = 1.9.0 no funciona correctamente. solo agregue Gemfile

gem ''coffee-script-source'', ''1.8.0''

y correr

bundle update coffee-script-source


solo debemos cambiar la línea 6 de la application a la default en /app/views/layouts/application.html.erb. Si cambia la línea 5, las hojas de estilo no se cargarán.


(En Windows 10 - Rails 4.2.5) : resolví haciendo esto:

1) Instalar nodes.js

2) Instale la gema coffe-script-source

gem ''coffee-script-source'', ''1.8.0''

3) Agregue esta línea en " config / initializers / assets.rb "

Rails.application.config.assets.precompile + =% w (application.css)


(En Windows 8)

  1. Instalar Node.js!
  2. Agréguelo a la RUTA (ENV_VAR)
  3. reiniciar el servidor

Para usuarios de Windows Puede configurar la ruta de ejecución de execjs en Node

config/boot.rb ENV[''EXECJS_RUNTIME''] = ''Node''