我是Ruby on Rails的初学者,我使用的是Rails 3.0.9.
Gemfile和Gemfile.lockRails有什么区别?
~>宝石规格中版本要求的含义是什么?
hanna-0.1.12 depends on [haml (~> 2.2.8)]
我的问题几乎就在标题中.
例如,在使用Rails 3.1应用程序创建的默认Gemfile中;
gem 'sass-rails', '~> 3.1.5'
Run Code Online (Sandbox Code Playgroud)
好像我应该知道这一点,但我在Bundler网站上找不到任何引用.
所以在GemFile中,如果我将它作为gem'query -rails'保留 并安装捆绑包,它就可以工作.但是,如果我指定这样的版本:
gem 'jquery-rails', '2.0.0'
Run Code Online (Sandbox Code Playgroud)
并且想要安装或更新捆绑包,它不起作用并在标题中显示错误.
我也做了一个
sudo gem install jquery-rails
Run Code Online (Sandbox Code Playgroud)
并再次尝试给jQuery一个版本,但仍然无法正常工作.
为什么?!
我目前有以下依赖项
i18n (~> 0.6, >= 0.6.4)
Run Code Online (Sandbox Code Playgroud)
我一直在阅读Ruby Gems - 声明依赖项指南
我发现“~> 0.6”部分表示 0.6 到 1.0 之间的任何值 - 如果这是错误的,请纠正我。
但我仍然很困惑,这对于第二个逗号分隔值实际上意味着什么?
一位同事认为这意味着
>= 0.6.4, <= 0.7
Run Code Online (Sandbox Code Playgroud)
但我不太确定。
我去了http://rubygems.org/gems/rails,我看到在Runtime Dependencies中,bundler gem的定义如下
bundler ~> 1.0
Run Code Online (Sandbox Code Playgroud)
那是什么意思?Thanx提前.
我需要使用可寻址的2.2.4 gem,但我有2.2.5版本(因为这里讨论了一个问题:https://github.com/sporkmonger/addressable/pull/33).我试过了:
source 'http://rubygems.org'
source 'http://gems.github.com'
gem "addresable", "2.2.4"
bundle install
Run Code Online (Sandbox Code Playgroud)
得到 Could not find gem 'adressable (= 2.2.4, runtime)' in any of the gem sources listed in your Gemfile.
如果我手动安装/卸载gem
sudo gem install addressable -v 2.2.4
sudo gem uninstall addressable -v 2.2.5
Run Code Online (Sandbox Code Playgroud)
我犯了同样的错误.
那么,我怎么能为我的应用强制2.2.4版本?