Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 不能使用cancan_Ruby On Rails 3_Cancan_Warden - Fatal编程技术网

Ruby on rails 3 不能使用cancan

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

我正在为坎坎拍摄第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 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需要它。