Rake-gems:当遵循声明性授权Railscast时,安装会产生错误



我正在遵循Railstcast#188来获得在我的Rails3应用程序上运行的声明性授权(使用Ruby 1.9.2),并且在安装gem时遇到了问题。

Ryan建议在config/environment.rb中添加以下内容:

config.gem "declarative_authorization", :source => "http://gemcutter.org"

然后用sudo rake gems:install安装。

然而,当我尝试时,我得到了一个错误:

/Users/Travis/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems.rb:314:in `bin_path': can't find gem rake ([">= 0"]) with executable rake (Gem::GemNotFoundException)

我尝试了rake gems:install,但得到了这个错误:

Don't know how to build task 'gems:install'

在GitHub上安装declarative_authorization的说明推荐了一个不同的过程,我也遵循了这个过程,但仍然无法通过rake:gems install

有人知道可能会发生什么吗?这样我就可以避开这件事了?

更新:以下是我的配置/环境.rb的样子:

RVM-v:rvm 1.10.0-pre宝石列表:

*** LOCAL GEMS ***
abstract (1.0.0)
actionmailer (3.0.9, 3.0.5)
actionpack (3.0.9, 3.0.5)
activemodel (3.0.9, 3.0.5)
activerecord (3.0.9, 3.0.5)
activeresource (3.0.9, 3.0.5)
activesupport (3.0.9, 3.0.5)
addressable (2.2.6)
arel (2.0.10)
aws-s3 (0.6.2)
aws-sdk (1.3.2)
builder (2.1.2)
bundler (1.0.21 ruby)
cocaine (0.2.1, 0.2.0)
erubis (2.6.6)
faraday (0.7.6, 0.7.5)
fastercsv (1.5.4)
gemcutter (0.7.1)
heroku (2.14.0)
httparty (0.8.1)
i18n (0.6.0, 0.5.0)
jquery-rails (1.0.19, 1.0.16)
json (1.6.5)
launchy (2.0.5)
mail (2.2.19)
metaclass (0.0.1)
mime-types (1.17.2)
mocha (0.10.3, 0.10.2, 0.10.0)
multi_json (1.0.4)
multi_xml (0.4.1)
multipart-post (1.1.4)
nifty-generators (0.4.6)
nokogiri (1.5.0)
paperclip (2.5.2, 2.5.0, 2.4.5)
pg (0.12.2, 0.12.0, 0.11.0)
polyamorous (0.5.0)
polyglot (0.3.3)
rack (1.2.5, 1.2.4)
rack-mount (0.6.14)
rack-test (0.5.7)
rails (3.0.9, 3.0.5)
railties (3.0.9, 3.0.5)
rake (0.9.2.2, 0.9.2, 0.8.7)
rake-compiler (0.7.9)
ransack (0.6.0, 0.5.8)
rdoc (3.8)
rest-client (1.6.7)
rubyzip (0.9.5)
simple_oauth (0.1.5)
sqlite3 (1.3.5, 1.3.4)
sqlite3-ruby (1.3.3)
term-ansicolor (1.0.7)
thor (0.14.6)
treetop (1.4.10)
twitter (2.1.0, 2.0.2)
tzinfo (0.3.31, 0.3.30)
uuidtools (2.1.2)
xml-simple (1.1.1)

不确定您的环境是如何设置的,但只需安装rake就可以了。如果您提供更多细节(rvm、bundler等),可能会有所帮助。

gem install rake

在进一步检查您的路径后,我发现您正在使用RVM。如果您的路径安装正确,您可以使用RVM全局管理集,执行上面的行。

我的另一个建议是查看CanCan railscast,因为这是目前更大的授权规范,也有更多的支持者。

http://railscasts.com/episodes/192-authorization-with-cancan

"几集前,我们报道了Declarative Authorization。虽然它是Rails的一个出色的授权插件,但对于更简单的网站来说,它可能有点重。在编写了关于DeclarativeAuthorization的Railscast之后,Ryan Bates寻找了一个替代解决方案,但由于找不到适合他的需求,他决定编写自己的CanCan。"-RBates

看了你的环境之后,让我们试着把环境分开一点。这样做。

rvm gemset create some_other_name
rvm gemset use some_other_name
bundle install

看看这是否足以隔离您的环境。

编辑:我不再使用rake宝石:安装了。你已经安装了bundler,我假设你想使用它。我确实使用rails g gemname:当这样的文档存在时安装,我将再次查看railscasts,看看rbates在告诉你什么。

在CANCANgithub页面上,它说:在Rails3中,将其添加到Gemfile中并运行bundle命令。宝石"cancan"。

最新更新