annotate命令不起作用,将其添加到我的gemfile中

Bla*_*man 16 ruby gem rubygems ruby-on-rails ruby-on-rails-3

我的gem文件看起来像:

 group :development, :test do
    gem 'rspec-rails'
    gem 'annotate-models', '1.0.4'
 end
Run Code Online (Sandbox Code Playgroud)

我跑' bundle install'并安装了annotate-models捆绑包.

如果我输入:annotate我得到一个命令未找到错误.

如果我输入:bundle show annotate我得到一个'找不到当前包中的gem annotate.

如果我输入bundle show annotate-models,它说它安装在:

/Library/Ruby/Gems/1.8/gems/annotate-models-1.0.4
Run Code Online (Sandbox Code Playgroud)

打字:

annotate-models
Run Code Online (Sandbox Code Playgroud)

也不起作用.

我正在关注railstutorial.org,并在此时陷入困境.

dai*_*ain 33

编辑:更好的版本(使用Bundler仅为当前项目安装它)

  1. 添加gem 'annotate'到Gemfile
  2. $ bundle install
  3. $ bundle exec annotate

Edit2:似乎你现在必须明确指定注释版本,所以在Gemfile中放置gem 'annotate', '2.4.1.beta1'(这是一个预先发布的beta gem,与最新版本的activerecord一起使用,而不是直接指定github repo)

编辑3:2.5.0决赛现在已经发布,所以希望不再需要强制推出测试版,只需获取最新版本即可!

旧版本(在系统级别安装gem):

如果运行Rails 3,那么演练是:

  1. $ sudo gem install annotate
  2. 添加gem 'annotate'到Gemfile
  3. $ bundle install
  4. $ annotate
  5. 要开心 :)


eri*_*ric 10

您应该在捆绑环境中运行命令:

$ bundle exec annotate
Run Code Online (Sandbox Code Playgroud)

查看手册页以获取更多详细信息.


Alb*_*rto 10

投票最多的答案并不能完全适用于我,因为我在遵循提议的解决方案时会遇到其他错误:

undefined method `namespace' for main:Object (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

我在下面包括对我有用的东西(我在Ubuntu 11.10下使用Ruby 1.9.2和Rails 3.1.3):

  1. 安装注释

    $ gem install annotate
    
    Run Code Online (Sandbox Code Playgroud)
  2. 修改Gemfile添加以下行

    gem 'annotate', 
        :git => 'git://github.com/jeremyolliver/annotate_models.git', 
        :branch => 'rake_compatibility'
    
    Run Code Online (Sandbox Code Playgroud)
  3. 安装捆绑

    $ bundle install    
    
    Run Code Online (Sandbox Code Playgroud)
  4. 现在您可以使用注释如下:

    $ bundle exec annotate
    
    Run Code Online (Sandbox Code Playgroud)


ger*_*tas 0

我认为您的 PATH 环境变量缺少 gems bin 目录的路径。我想应该是:/Library/Ruby/Gems/1.8/bin