2013-05-24 27 views
11

Sto lavorando a un progetto Rails 4 (utilizzando il rilascio del candidato) e ora è necessario collaborare con qualcuno su un computer Windows. Non riesco nemmeno a ottenere una pagina web di base, tuttavia :(. È stato piuttosto difficile installare sqlite3 usando Ruby 2.0 Ora, quando provo ad ottenere una pagina web (ho appena creato un controller fittizio/home/index e vista), ottengo questo errore:?.È possibile ottenere Rails 4 su Windows?

Showing C:/Users/me/RubymineProjects/test_project/app/views/layouts/application.html.erb where line #6 raised: 

    (in C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/turbolinks-1.1.1/lib/assets/javascripts/turbolinks.js.coffee) 

Extracted source (around line #6): 
3 <head> 
4 <title>TestProject</title> 
5 <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %> 
6 <%= javascript_include_tag "application", "data-turbolinks-track" => true %> 
7 <%= csrf_meta_tags %> 
8 </head> 
9 <body> 

è Rails 4 semplicemente non è pronto per Windows ancora Utilizzando rubino 2.0.0p195

UPDATE: secondo la richiesta @szines, ecco il uscita pagina web per

http://localhost:3000/rails/info/properties: 
Ruby version 2.0.0 (x64-mingw32) 
RubyGems version 2.0.3 
Rack version 1.5 
Rails version 4.0.0.rc1 
JavaScript Runtime JScript 
Active Record version 4.0.0.rc1 
Action Pack version 4.0.0.rc1 
Action Mailer version 4.0.0.rc1 
Active Support version 4.0.0.rc1 
Middleware 
ActionDispatch::Static 
Rack::Lock 
#<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x000000036b85c0> 
Rack::Runtime 
Rack::MethodOverride 
ActionDispatch::RequestId 
Rails::Rack::Logger 
ActionDispatch::ShowExceptions 
ActionDispatch::DebugExceptions 
ActionDispatch::RemoteIp 
ActionDispatch::Reloader 
ActionDispatch::Callbacks 
ActiveRecord::Migration::CheckPending 
ActiveRecord::ConnectionAdapters::ConnectionManagement 
ActiveRecord::QueryCache 
ActionDispatch::Cookies 
ActionDispatch::Session::CookieStore 
ActionDispatch::Flash 
ActionDispatch::ParamsParser 
Rack::Head 
Rack::ConditionalGet 
Rack::ETag 
Warden::Manager 
Application root C:/Users/me/RubymineProjects/test_project 
Environment development 
Database adapter sqlite3 
Database schema version 20130523073322 
+0

È possibile eseguire questo senza turbolinks? Hai avuto bisogno della gemma dei turbolinks? – Mindbreaker

+0

Sì, scusa, ho dimenticato di dirlo! Voglio i turbolinks. –

+0

includeva un messaggio di errore? –

risposta

21

<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>

Modifica questo:

<%= stylesheet_link_tag "defaults", media: "all", "data-turbolinks-track" => true %>

Dovrebbe funzionare.

Sarebbe bello se qualcuno potesse fornire una spiegazione per questo.

Maggiori informazioni:

ExecJS::RuntimeError in Users#index (RoR)

ExecJS and could not find a JavaScript runtime

+3

Ciao, non ha funzionato per me, ma se cambio "applicazione" per "default" nella riga sotto, funziona anche dopo! – airpaulg

+1

Ho provato il suggerimento di Airpaulg e ha funzionato per me. Devi cambiare entrambi. – Drew

+0

installa node.js - è la soluzione permanente (assicurati di includere npm/bin sotto il tuo percorso in ambiente windows). usando "defaults" si include defaults.js che non esiste. Controlla la console del browser in rete con 404-non trovato. –

8

Basta installare node.js e il problema sarà andato.

Spiegazione: Se si tenta di precompilare beni, si otterrà la seguente traccia:

(in C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/turbolinks-1.3.0/lib/assets/javascripts/turbolinks.js.coffee) 
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:142:in `exec_runtime' 
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:28:in `block in exec' 
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:41:in `compile_to_tempfile' 
... 

Come potete vedere, c'è un problema con ExecJS. ExecJS ti consente di eseguire codice JavaScript da Ruby e richiede che uno degli interpreti JS sia installato sul tuo sistema. Ecco a list di interpreti supportati. Di solito, puoi usare il terubyracer che è solo V8 ma ci sono problemi con la compilazione di V8 sotto le finestre. Quindi puoi scegliere un'altra opzione - NodeJS. ExecJS lo userà automaticamente quando installi NodeJS e lo aggiungi al tuo PATH.

7

cambio seguente riga

<%= javascript_include_tag "application", "data-turbolinks-track" => true %> 

a

<%= javascript_include_tag "defaults", "data-turbolinks-track" => true %> 

opere.

O

è possibile installare node.js

+1

Ho avuto lo stesso problema con Rails su Windows utilizzando Railsinstaller (l'ultima versione ad oggi). Sostituire "applicazione" con "default" ha funzionato. Installare node.js no. – InvalidBrainException

+0

assicurati di aggiungere "npm/bin" nel tuo percorso (Windows Enviornment) –

0

ho dovuto affrontare questo problema per un po 'ed è che sulle finestre jquery e sceneggiatura caffè non sono funzionali nel loro ultimo aggiornamento e, infine, ho trovato questo meraviglioso metodo che ha funzionato perfettamente senza la necessità di scaricare il nodo o l'escape // richiede l'albero. Quindi tutto ciò di cui hai bisogno è configurare le impostazioni nel tuo runtimes.rb, che vive in execjs per essere così: troverai questa parte con poche differenze che la risolvono e sarai pronta per andare.

JScript = ExternalRuntime.new(
:name  => "JScript", 
:command  => "cscript //E:jscript //Nologo", 
:runner_path => ExecJS.root + "/support/jscript_runner.js", 
:encoding => 'UTF-8' # CScript with //U returns UTF-16LE 

È possibile guardare questo video per una soluzione dettagliata. https://www.youtube.com/watch?v=N5i94L17KPo

Problemi correlati