好的,每当我运行"捆绑安装",我得到这个
Bundler could not find compatible versions for gem "railties":
In Gemfile:
sass-rails (~> 3.1.0.rc8) depends on
railties (~> 3.1.0)
railties (3.1.0.rc8)
Run Code Online (Sandbox Code Playgroud)
现在在我的宝石文件中我有这个:
source 'http://rubygems.org'
gem 'rails', '3.1.0.rc8'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sqlite3'
gem 'json'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', " ~> 3.1.0.rc8"
#added by me
gem 'railties', " ~> 3.1.0.rc8"
#end
gem 'coffee-rails', "~> 3.1.0.rc"
gem …Run Code Online (Sandbox Code Playgroud) 在Gemfile中,可以引用github上托管的gem:
gem 'spree', github: 'spree/spree', branch: '2-3-stable'
gem 'spree_gateway', github: 'spree/spree_gateway', ref: '2-1-stable'
Run Code Online (Sandbox Code Playgroud)
该的Gemfile手册页介绍了git的三个属性:分支,REF和标签.ref和之间有什么区别branch?Bundler如何根据属性不同地处理gem?
这尤其有趣,因为您一次只能使用其中一个属性.
我目前正在使用
gem 'rails', '~> 5.0.0'
Run Code Online (Sandbox Code Playgroud)
在我的Gemfile中。
我刚刚了解了指定Rails分支的另一种方法,即:
gem 'rails', github: "rails/rails", branch: '5-0-stable'
Run Code Online (Sandbox Code Playgroud)
是否有最佳实践将Rails包含在Gemfile中?您为什么要使用一种方法来替代另一种方法?
我试图捆绑安装,但这是我得到的:
/home/mywebsite/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/site_ruby/1.9.1/rubygems/version.rb:187:in `initialize': Malformed version number string = 1.0.3 (ArgumentError)
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/lockfile_parser.rb:104:in `new'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/lockfile_parser.rb:104:in `parse_spec'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/lockfile_parser.rb:71:in `parse_source'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/lockfile_parser.rb:30:in `block in initialize'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/lockfile_parser.rb:24:in `each'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/lockfile_parser.rb:24:in `initialize'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/definition.rb:44:in `new'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/definition.rb:44:in `initialize'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/dsl.rb:148:in `new'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/dsl.rb:148:in `to_definition'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/dsl.rb:8:in `evaluate'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/definition.rb:18:in `build'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler.rb:144:in `definition'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/cli.rb:228:in `install'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/vendor/thor/task.rb:27:in `run'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/vendor/thor/invocation.rb:120:in `invoke_task'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/vendor/thor.rb:275:in `dispatch'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/vendor/thor/base.rb:408:in `start'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/bin/bundle:14:in `block in <top (required)>'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/lib/bundler/friendly_errors.rb:4:in `with_friendly_errors'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/gems/bundler-1.2.3/bin/bundle:14:in `<top (required)>'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/bin/bundle:19:in `load'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@global/bin/bundle:19:in `<main>'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@mywebsiter/bin/ruby_noexec_wrapper:14:in `eval'
/home/mywebsite/.rvm/gems/ruby-1.9.3-p362@mywebsiter/bin/ruby_noexec_wrapper:14:in `<main>'
There was an error in your Gemfile, and Bundler cannot continue.
Run Code Online (Sandbox Code Playgroud)
编辑 这是我的Gemfile:
source …Run Code Online (Sandbox Code Playgroud) 我正在关注Hartl Ruby on Rails教程,我在本教程的1.2.4节中
在设置Rails应用程序时,它说要运行这些命令:
cd first_app_direcory
sublime Gemfile
bundle update
Run Code Online (Sandbox Code Playgroud)
该sublime Gemfile命令显然编辑了Gemfile,但是当我尝试运行该命令时,bundle update我收到以下错误:
bundle update
Gemfile syntax error:
ruby 2.0.0
^
/home/cameron/ruby/ror/first_app/Gemfile:2:
syntax error, unexpected tINTEGER,
expecting '('
ruby 2.0.0
^
Run Code Online (Sandbox Code Playgroud)
我从gemfile中取出了这两行,尽管它说要包含它们.此外,我尝试了Ruby 1.9.3,仍然得到相同的错误消息.
ruby 2.0.0
#ruby-gemset=railstutorial_rails_4_0
Run Code Online (Sandbox Code Playgroud)
采取这些方法之后,它起作用了.我试图让它与gemfile中的那些行一起工作.我怎样才能做到这一点?
这是完整的Gemfile:
source 'https://rubygems.org'
ruby 2.0.0
#ruby-gemset=railstutorial_rails_4_0
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.0'
# Use sqlite3 as the database for Active Record
group :developent do
gem 'sqlite3', '1.3.7'
end
# Use …Run Code Online (Sandbox Code Playgroud) 我是ruby的新手,我正在尝试指定一个特定的版本号rack.我想1.4.5安装和1.5.2删除,我做了
gem uninstall rack --version 1.5.2,和指定的版本号rack到1.4.5文件Gemfile.lock.
但是在我今天早上起床后,我发现它rack 1.5.2已经自动重新安装回来,并且rackin 的版本Gemfile.lock被重置为1.5.2.如何指定配置,以便机器不会自动执行上述操作?
我正在编写一个简单的 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)