Ho appena effettuato un nuovo checkout del mio progetto Rails Engine e quando (dopo bundle install
) invoco rails -v
nella sua directory principale, ricevo un LoadError
in cui Rails sembra essere alla ricerca per i più gemma/motore che sto cercando di costruire:Impossibile eseguire Rails nel progetto Gem/Engine senza prima installare la gemma stessa
my-engine dmoles$ rails -v
/Users/dmoles/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'my-engine' (>= 0) among 117 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/dmoles/.rvm/gems/ruby-2.2.1:/Users/dmoles/.rvm/gems/[email protected]', execute `gem env` for more information
from /Users/dmoles/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb:324:in `to_spec'
from /Users/dmoles/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_gem.rb:64:in `gem'
from /Users/dmoles/.rvm/gems/ruby-2.2.1/bin/rails:22:in `<main>'
Esecuzione gem env
come suggerito fornisce più l'illuminazione:
my-engine dmoles$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.4.6
- RUBY VERSION: 2.2.1 (2015-02-26 patchlevel 85) [x86_64-darwin14]
- INSTALLATION DIRECTORY: /Users/dmoles/.rvm/gems/ruby-2.2.1
- RUBY EXECUTABLE: /Users/dmoles/.rvm/rubies/ruby-2.2.1/bin/ruby
- EXECUTABLE DIRECTORY: /Users/dmoles/.rvm/gems/ruby-2.2.1/bin
- SPEC CACHE DIRECTORY: /Users/dmoles/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Users/dmoles/.rvm/rubies/ruby-2.2.1/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-14
- GEM PATHS:
- /Users/dmoles/.rvm/gems/ruby-2.2.1
- /Users/dmoles/.rvm/gems/[email protected]
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/dmoles/.rvm/gems/ruby-2.2.1/bin
- /Users/dmoles/.rvm/gems/[email protected]/bin
- /Users/dmoles/.rvm/rubies/ruby-2.2.1/bin
- /Users/dmoles/.rvm/bin
- /Users/dmoles/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /usr/local/git/bin
posso costruire/installare il gemma bene con
gem build my-engine.gemspec
gem install my-engine-0.0.1.gem
dopo di che rails -v
inizia a lavorare. * Non sembra come questo dovrebbe essere necessario, però, e mi fa paura che Rails può essere costruita utilizzando la versione/installata del codice al posto del sorgente live . Che cosa sto facendo di sbagliato?
* Cioè, si corre, anche se si lamenta "Bundler sta usando una binstub che è stato creato per una gemma diversa". Forse perché non gradisce il fatto che la gemma si chiama my-engine
ma lo ENGINE_PATH
ha my/engine
?
Questo in realtà non è vero. Se esegui rails -v dopo aver seguito l'esempio di [Getting started with engines] (http://guides.rubyonrails.org/engines.html), 'rails plugin new blorgh --mountable; cd blorg; rails -v', funziona bene (almeno con Ruby 2.2.1). –