0

我正在关注 cancan 的 rails casts 第 192 集 (http://railscasts.com/episodes/192-authorization-with-cancan?autoplay=true)。

我有 ruby​​ 1.9.3 和 rails 3.2.3

我的 gem 文件有这个内容

group :test, :development do
   gem 'rspec-rails', '~> 2.5'
end
group :test do 
   gem 'cucumber-rails', '1.0.6'# use this instead of the one in the book
   gem 'capybara'
   gem 'database_cleaner'
end

gem 'dynamic_form'
gem 'factory_girl'
gem 'devise', '~>1.4.3'
gem 'email_spec'
gem 'cancan'

在 environment.rb 文件中我添加了

config.gem 'cancan'

当我运行 bundle 命令时,我看到了这个......

Using warden (1.0.6) 
Using devise (1.4.9) 
Using dynamic_form (1.1.4) 
Using rspec-core (2.11.0) 
Using rspec-expectations (2.11.1) 
Using rspec-mocks (2.11.0) 
Using rspec (2.11.0) 

现在我的问题是:当我跑步时:

sudo rake gems:install

那为什么我会看到这个:

Could not find warden-1.0.6 in any of the sources
Run `bundle install` to install missing gems.

以及在我的 gem.lock 文件中为什么它显示...

devise (1.4.9)
  bcrypt-ruby (~> 3.0)
  orm_adapter (~> 0.0.3)
  warden (~> 1.0.3)
4

1 回答 1

0

该 railscast 是从 2009 年 12 月 14 日开始的,当时 Rails 2 是标准。

您应该阅读https://github.com/ryanb/cancan上的说明,其中更多地关注 Rails 3 和 Bundler。

bundle install会将您的 Gemfile 内容安装到您当前的 RVM gemset 中,在这种情况下,可能是默认 gemset。不要使用 sudo 来安装 gems。要列出 gemset 中安装的 gem,只需运行gem list. 运行bundle list以显示当前应用程序包中的所有 gem。

于 2012-07-09T17:15:15.050 回答