2015-01-14 7 views
6

Stavo lavorando a un progetto e ho riscontrato problemi con therubyracer e libv8 spesso, quindi ho deciso di rimuoverli. Sembrava che l'unica cosa che li usava come dipendenza fosse meno binari che volevo rimuovere comunque.Cos'è therubyracer o libv8 in un'applicazione per rotaie?

La mia domanda principale è a cosa servono e ne ho bisogno nell'applicazione media e, in caso affermativo, perché?

+1

Essi sono generalmente utilizzati per il gasdotto risorsa su piattaforme che non hanno un runtime JavaScript installato di default. Quindi se non si compilano le risorse sul sistema di destinazione o se il sistema ha un runtime JavaScript nel percorso non sono necessarie. – Doon

+0

Quindi un server CentOS che non è connesso a Internet non avrebbe o non avrebbe questo? –

+0

Se il server ha già un runtime JavaScript come node.js già installato, non è necessario. Non so se centos viene fornito con un runtime JavaScript anche se non si compilano le risorse sul box non è necessario. Less.rb ha una dipendenza da commonjs che sembra utilizzare solo terubyracer o therubyrhino. Controlla la risposta qui per maggiori informazioni. http://stackoverflow.com/questions/18687575/why-is-the-gem-therubyracer-commented-out-by-default-in-gemfile – Doon

risposta

9

Ci sono alcune cose per cui un'applicazione Rails potrebbe utilizzare un JavaScript Runtime:

1) Il Rails Asset Pipeline richiede un JavaScript runtime per eseguire la compressione Javascript.

2) Alcuni Rails ActionView Helpers come javascript_include_tag richiedono un JavaScript runtime per eseguire funzioni Javascript.

Non tutte le applicazioni Rails utilizzano queste funzionalità, quindi il motivo per cui la gemma di therubyracer viene inizialmente commentata nel proprio Gemfile; Inoltre, si noti che in alternativa si può usare NodeJS come runtime di Javascript.

Per maggiori dettagli, si veda:

http://guides.rubyonrails.org/asset_pipeline.html#javascript-compression

http://www.rubydoc.info/docs/rails/ActionView/Helpers/JavaScriptHelper

http://www.rubydoc.info/docs/rails/ActionView%2FHelpers%2FAssetTagHelper%3Ajavascript_include_tag

Proper "Rails" way to perform javascript on specific pages

2

rubyracer fornisce seguenti caratteristiche:

1. We can write your ruby codes inside js codes. 
2. We can invoke the js functions from ruby codes. 
3. Manipulation of javscript objects & the passing them to javascript functions. 

Questi sono i pochi benefici di base dell'utilizzo di rubyracer gemma. Si prega di leggere i dettagli completi here

+0

elemento 1, ha qualcosa a che fare con i file js.erb? –

+0

quando si colpisce il controller delle guide (tramite ajax) e si desidera un'interazione necessaria per i codici nel file app/views/action_name.js.erb. Questo file manterrà i tuoi codici js + i codici ruby ​​incorporati. :) Si prega di verificare: http://richonrails.com/articles/basic-ajax-in-ruby-on-rails – Ajay

+0

Nel link fornito solo cercare app/views/prodotti/_save.js.erb: che verrà cancella il tuo dubbio :) – Ajay

Problemi correlati