Aje*_*i32 5 gem ruby-on-rails rails-engines ruby-on-rails-3
我最近决定在我的几个Rails应用程序中使用一些功能并将其提取到引擎中.我现在已经完成了引擎,我正在尝试将完成的gem安装到我的一个应用程序中.
这个特殊的gem不是我想要公开的东西,所以我打包了gem,gem build my_gem.gemspec然后将打包的gem放在我的应用程序的vendor/gems文件夹中.然后,我添加gem 'my_gem', '0.0.1', :path => 'vendor/gems'到我的gemfile并运行bundle install.
不幸的是,Rails似乎没有加载gem,我似乎无法手动要求它:
$ bundle exec rails console --sandbox
Loading development environment in sandbox (Rails 3.2.11)
Any modifications you make will be rolled back on exit
irb(main):001:0> MyGem
NameError: uninitialized constant MyGem
from (irb):1
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in `start'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:8:in `start'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
irb(main):002:0> require 'my_gem'
LoadError: cannot load such file -- my_gem
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `block in require'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:236:in `load_dependency'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
from (irb):2
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in `start'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:8:in `start'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?我该如何解决?
编辑:这是我的宝石环境信息.
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.16
- RUBY VERSION: 1.9.3 (2012-02-16 patchlevel 125) [i386-mingw32]
- INSTALLATION DIRECTORY: c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: c:/RailsInstaller/Ruby1.9.3/bin/ruby.exe
- EXECUTABLE DIRECTORY: c:/RailsInstaller/Ruby1.9.3/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-mingw32
- GEM PATHS:
- c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1
- c:/Users/Ajedi32/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
Run Code Online (Sandbox Code Playgroud)
输入gem env以检查 Ruby 在哪里搜索 gem。
然后,您需要将放置 gem 的目录附加到 GEM_PATH 环境变量中。例如:
export GEM_PATH="./vendor/gems:$GEM_PATH"
Run Code Online (Sandbox Code Playgroud)
另请参阅: http: //docs.rubygems.org/read/chapter/12
如果您使用 Gemfile,您还可以执行以下操作:
gem 'my-gem', '0.0.1', :path => 'vendor/gems/my-gem'
Run Code Online (Sandbox Code Playgroud)
(你必须将你的gem目录的名称添加到路径中)
| 归档时间: |
|
| 查看次数: |
3692 次 |
| 最近记录: |