我跟随Railstcast#188获取在我的Rails 3应用程序上运行的声明性授权(使用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
。
有谁知道可能会发生什么,所以我可以解决这个问题?
更新:这是我的config / environment.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)
答案 0 :(得分:0)
不确定您的环境是如何设置的,但只需安装rake即可。如果您提供更多细节(rvm,bundler等),它可能会有所帮助。
gem install rake
在进一步检查您的路径后,我发现您正在使用RVM。如果您的路径安装正确,您可以使用RVM Global gemset,执行上面的行。
我的另一个建议是检查CanCan的轨道广播,因为这是目前更大的授权规范,也是更多的支持者。
http://railscasts.com/episodes/192-authorization-with-cancan
“在几集之前我们讨论了声明授权。虽然它是一个优秀的Rails授权插件,但它对于更简单的站点来说可能有点重。在声明授权上编写Railscast之后,Ryan Bates寻找替代解决方案,但未能找到一个符合他需要的人,决定写自己的,CanCan。“ - RBates
在看到您的环境之后,让我们尝试将环境分开一点。这样做。
rvm gemset create some_other_name
rvm gemset use some_other_name
bundle install
看看这是否足以隔离您的环境。
编辑:我不使用rake gems:再安装。您已安装捆绑包,我假设您要使用它。我确实使用rails g gemname:install存在这样的文档时,我将再次查看railscast并查看rbates告诉你的内容。
在CANCAN github页面上,它说:在Rails 3中,将其添加到Gemfile并运行bundle命令。 宝石“康康”。