【问题标题】:can not use cancan不能用康康
【发布时间】:2012-07-09 15:34:49
【问题描述】:

我正在关注 cancan 的 rails casts 第 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)

【问题讨论】:

  • 你的 Ruby 是如何安装的?运行 bundle install 后,为什么要执行 sudo rake gems:install?
  • 我使用 rvm 安装 ruby​​。我正在做 sudo rake gems:install 因为它在剧集中。但是当我这样做时,它告诉我我需要先运行捆绑安装,因为缺少 gem 守望者 1.0.6 并且 cancan 需要它。

标签: ruby-on-rails-3 cancan warden


【解决方案1】:

该 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。

【讨论】:

    猜你喜欢
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多