Ruby on rails 3 不能使用cancan
我正在为坎坎拍摄第192集http://railscasts.com/episodes/192-authorization-with-cancan?autoplay=true. 我有ruby 1.9.3 和轨道3.2.3 我的gem文件包含此内容Ruby on rails 3 不能使用cancan,ruby-on-rails-3,cancan,warden,Ruby On Rails 3,Cancan,Warden,我正在为坎坎拍摄第192集http://railscasts.com/episodes/192-authorization-with-cancan?autoplay=true. 我有ruby 1.9.3 和轨道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
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)
这个railscast是从2009年12月14日开始的,当时Rails2是标准的 您应该阅读更多关于Rails 3和Bundler的说明
bundle install将把Gemfile内容安装到当前的RVM gemset中,在本例中,可能是默认的gemset。不要使用sudo安装gems。要列出安装在gems集中的gems,只需运行gem list。运行bundle list以显示当前应用程序bundle中的所有gem。您的Ruby是如何安装的?运行bundle安装后,为什么要执行sudorake gems:install?我使用rvm安装ruby。我正在做sudo rake gems:install,因为它在这一集里。但是当我这样做的时候,它告诉我需要首先运行bundle安装,因为gemwarden,1.0.6缺失,cancan需要它。