L'app My Rails 4.2 non riesce a caricare qualche gemma ospitata su GitHub (installata tramite bundler v1.8.2). Sto usando rvm 1.26.10 (master)
Nel mio Gemfile
,
gem "simple_form", "~> 3.1.0"
gem "actionform", :github => "rails/actionform"
Bundler li installa in diverse posizioni:
$ bundle show simple_form
/Users/me/.rvm/gems/ruby-2.1.5@my_app/gems/simple_form-3.1.0
$ bundle show actionform
/Users/me/.rvm/gems/ruby-2.1.5@my_app/bundler/gems/actionform-4a858fecf4c2
Le rotaie non caricano mai il file actionform
gemma. Dopo aver inserito la linea //= require action_form
al mio app/assets/javascript/application.js
file, arriva questo errore
Sprockets :: FileNotFound in / couldn "t find file" action_form " comunque, il
action_form.js
il file esiste nel file gem.
Inoltre, quando provo a riprodurre l'esempio readme, ho ricevuto questo errore
NomeErrore in / conferenze / nuova costante non inizializzata ActionForm
require "bundler/setup"
è in boot.rb
Qualche consiglio su questo problema?
Grazie!
risposte:
4 per risposta № 1Il problema è una mancata corrispondenza tra il nome della gemma e il file all'interno della gemma. Poiché la gemma si chiama "actionform", Bundler proverà a farlo require "actionform"
, tuttavia il file viene effettivamente chiamato action_form
.
Puoi dire a Bundler il nome file corretto con questa sintassi:
gem "actionform", :github => "rails/actionform", :require => "action_form"
Si noti che è normale che le gemme provenienti da fonti git siano installate in una posizione diversa rispetto alle gemme installate dai server gem. Non ha nulla a che fare con questo problema.