从我的研究中,bundle exec负责在bundle的上下文中执行命令.
无论如何,我还不太了解它与命令rake db:migrate比较的不同之处bundle exec rake db:migrate.
例如在我的情况下,我执行了第一个命令,我得到的是以下错误:
$ rake db:migrate
(in c:/rails/rails_projects/soccerweb)
rake aborted!
uninitialized constant Rake::DSL
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/tasklib.rb:8:in `<clas
s:TaskLib>'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/tasklib.rb:6:in `<modu
le:Rake>'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/tasklib.rb:3:in `<top
(required)>'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/testtask.rb:4:in `requ
ire'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/testtask.rb:4:in `<top
(required)>'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/test_unit/testing.r
ake:2:in `require'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/test_unit/testing.r
ake:2:in `<top (required)>'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/test_unit/railtie.r
b:12:in `load'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/test_unit/railtie.r
b:12:in `block in <class:TestUnitRailtie>'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/railtie.rb:183:in `
call'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/railtie.rb:183:in `
block in load_tasks'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/railtie.rb:183:in `
each'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/railtie.rb:183:in `
load_tasks'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/engine.rb:396:in `b
lock in load_tasks'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/application/railtie
s.rb:8:in `each'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/application/railtie
s.rb:8:in `all'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/engine.rb:396:in …Run Code Online (Sandbox Code Playgroud) 我试图在Linux Mint中安装bundler.但是我收到了这个错误
$ gem install bundler
ERROR: Could not find a valid gem 'bundler' (>= > 0) in any repository
Run Code Online (Sandbox Code Playgroud)
试图这样做
$ gem update --system
Run Code Online (Sandbox Code Playgroud)
但在基于Debian的系统中不允许这样做.
该怎么办??
我正在尝试从OS X开发工作站向RedHat Linux 5生产服务器部署Rails应用程序.
我把完整的输出cap deploy放到了这个要点中.
我认为这部分输出显示了问题:
** [out :: devuser@web3] Could not find gem 'awesome_print (>= 0) ruby' in any of the gem sources listed in your Gemfile.
** [out :: devuser@web3] Run `bundle install` to install missing gems.
command finished in 663ms
*** [deploy:update_code] rolling back
Run Code Online (Sandbox Code Playgroud)
这些是我在这里看到的一些问题:
awesome_print在:development集团中,因此Capistrano不应该尝试在生产中安装它.
无论如何,所有的宝石都可以在rubygems.org中找到,所以安装它们应该没有问题.
如果有人知道cap deploy上班的方式,我将很高兴知道它.谢谢.
我的Gemfile ......
source 'https://rubygems.org'
gem 'rails', '3.2.2'
gem 'mysql2', '0.3.11'
gem 'capistrano', '2.11.2'
gem 'haml-rails', '0.3.4'
gem 'net-ldap', …Run Code Online (Sandbox Code Playgroud) 我正在通过ruby on rails教程跋涉(所以我很无知),我似乎遇到了捆绑器的问题.最初,"捆绑安装"工作正常,但现在我得到这个:
C:\Users\Me\RonR\first_app>bundle install
C:/Program Files (x86)/ruby-1.9.2/lib/ruby/site_ruby/1.9.1/rubygems.rb:926:in `report_activate_error': Could not find RubyGem bundler (>= 0) (Gem::LoadError)
from C:/Program Files (x86)/ruby-1.9.2/lib/ruby/site_ruby/1.9.1/rubygems.rb:244:in `activate_dep'
from C:/Program Files (x86)/ruby-1.9.2/lib/ruby/site_ruby/1.9.1/rubygems.rb:236:in `activate'
from C:/Program Files (x86)/ruby-1.9.2/lib/ruby/site_ruby/1.9.1/rubygems.rb:1307:in `gem'
from C:/RailsInstaller/Ruby1.9.3/bin/bundle:18:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我尝试在另一个线程中执行"gem install bundler"的建议,但这本身会产生以下结果:
C:\Users\Me\RonR\first_app>gem install bundler
ERROR: While executing gem ... (Errno::EACCES)
Permission denied - C:/Program Files (x86)/ruby-1.9.2/bin/bundle.bat
Run Code Online (Sandbox Code Playgroud)
我试过四处寻找,但我对这一切都是如此令人难以置信的新事物,有时候,我甚至无法判断别人的问题是否和我的一样.如果我需要提供更多相关信息,请告诉我.
谢谢大家.
我将一个字符串从活动传递到另一个,它的工作,但如果我尝试打开活动而不传递字符串它抛出一个空指针异常,亲切的Assit
Bundle gotBasket = getIntent().getExtras();
gotPassenger= gotBasket.getString("passenger");
gotStaffNumber= gotBasket.getString("clientcode");
etPassenger.setText(""+ gotPassenger );
etStaffNumber.setText("" + gotStaffNumber);
Run Code Online (Sandbox Code Playgroud) 我正在尝试运行此命令
gem install bundler
Run Code Online (Sandbox Code Playgroud)
但我总是收到此错误:
ERROR: Loading command: install (LoadError)
cannot load such file -- openssl
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
我该怎么办?我已经尝试过这个(正如这里指出的'gem install bundle' 出错了):
rvm pkg install zlib
rvm remove 2.0.0
rvm install 2.0.0
Run Code Online (Sandbox Code Playgroud) 我正在努力建立我的第一颗宝石.使用Ryan Biggs的教程作为我的向导,我做了以下工作:
1)创建了宝石脚手架:
$ bundle gem hello_world
Run Code Online (Sandbox Code Playgroud)
2)编辑了lib/hello_world.rb文件:
require "hello_world/version"
module HelloWorld
def hi
"Hello world!"
end
end
Run Code Online (Sandbox Code Playgroud)
3)通过捆绑器安装gem:
$ cd hello_world
$ bundle install
Run Code Online (Sandbox Code Playgroud)
此时,如果我跑了
$ bundle show hello_world
Run Code Online (Sandbox Code Playgroud)
表明
/Users/ykessler/gems/hello_world
Run Code Online (Sandbox Code Playgroud)
所以它看起来像安装.
但是当我尝试从irb中获取宝石时:
require '/Users/ykessler/gems/hello_world'
Run Code Online (Sandbox Code Playgroud)
它无法加载它:
2.0.0-p195 :003 > require '/Users/ykessler/gems/hello_world'
LoadError: cannot load such file -- /Users/ykessler/gems/hello_world
from /Users/ykessler/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /Users/ykessler/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from (irb):3
from /Users/ykessler/.rvm/rubies/ruby-2.0.0-p195/bin/irb:16:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我哪里错了?
我尝试安装最新的开发,它似乎有效?指南针 1.0.0.alpha.18
但是在我的项目中,我现在将指南针 0.12.2 和指南针 1.0.0.alpha 都安装为 gems。这是正确的吗?这似乎是错误的,但我不知道如何只使用较新的 alpha 版本。我必须运行或下载什么?
我对这些东西有很好的了解,但不是专家,所以感谢您的帮助。
我正在编写一个简单的 ruby 应用程序(基本上使用 PORO 的)。我已经向它添加了一个 Gemfile,我正在尝试通过 Gemfile 要求使用 pry gem(这对于在调试时添加断点很有用,随着应用程序的增长),但我无法要求使用该 gem Bundler.setup,一切正常与Bundler.require.
例如Bundler.require,出于本博客中所述的原因,我试图避免使用。
在Employee.rb文件中,我有以下代码 -
# require 'bundler'
# require 'bundler/setup'
# Bundler.setup(:default, :test, :development)
Bundler.require(:default, :development, :test)
def total_score(scores)
binding.pry #added on purpose , just to see if the app stops at this breakpoint
scores.inject(:+)
end
Run Code Online (Sandbox Code Playgroud)
当我使用 Bundler.setup(取消注释上面注释的行)而不是 Bundler.require 时,我rspec spec .从我的应用程序根目录给出的命令出现以下错误 -
Failure/Error: expect(total_score(scores)).to eq(16)
NoMethodError:
undefined method `pry' for #<Binding:0x007fbda22b79d0>
# ./Employee.rb:9:in `total_score'
# …Run Code Online (Sandbox Code Playgroud) 我只安装了一个 ruby 版本:
$ rvm list
=* ruby-2.5.7 [ x86_64 ]
# => - current
# =* - current && default
# * - default
Run Code Online (Sandbox Code Playgroud)
但是每当我安装 jekyll 或 bundler 时,我都会抱怨旧版本。
$ sudo gem install bundler
ERROR: Error installing bundler:
bundler requires Ruby version >= 2.3.0.
Run Code Online (Sandbox Code Playgroud)
无法找到原因。操作系统:CentOS
bundler ×10
ruby ×5
gem ×2
rvm ×2
android ×1
capistrano ×1
compass-sass ×1
deployment ×1
gemfile ×1
installation ×1
jekyll ×1
linux ×1
linux-mint ×1
pry ×1
rubygems ×1
windows ×1