标签: gemfile

捆绑安装问题

好的,每当我运行"捆绑安装",我得到这个

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)

ruby-on-rails gemfile

1
推荐指数
1
解决办法
2873
查看次数

Gemfile:github参考中branch和ref之间的区别

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?

这尤其有趣,因为您一次只能使用其中一个属性.

ruby bundler gemfile

1
推荐指数
1
解决办法
799
查看次数

在Gemfile中指定Rails版本或分支是更好的做法吗?

我目前正在使用

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中?您为什么要使用一种方法来替代另一种方法?

rubygems ruby-on-rails gemfile

1
推荐指数
1
解决办法
475
查看次数

我的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)

ruby-on-rails bundler gemfile ruby-on-rails-3.2

0
推荐指数
1
解决办法
1542
查看次数

为什么我的Gemfile不会运行?

我正在关注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 ruby-on-rails gemfile

0
推荐指数
1
解决办法
2021
查看次数

如何指定Gemfile以便它不会安装特定版本的gem

我是ruby的新手,我正在尝试指定一个特定的版本号rack.我想1.4.5安装和1.5.2删除,我做了 gem uninstall rack --version 1.5.2,和指定的版本号rack1.4.5文件Gemfile.lock.

但是在我今天早上起床后,我发现它rack 1.5.2已经自动重新安装回来,并且rackin 的版本Gemfile.lock被重置为1.5.2.如何指定配置,以便机器不会自动执行上述操作?

ruby gem ruby-on-rails gemfile gemfile.lock

0
推荐指数
1
解决办法
162
查看次数

对于使用 Gemfile 的 Ruby 应用程序,无法通过 Bundler.setup 要求 pry

我正在编写一个简单的 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 bundler gemfile pry

0
推荐指数
1
解决办法
1790
查看次数