1

バージョン:

  • ルビー 1.9.3p194

  • レール 3.2.13

  • バンドラー 1.3.5

を実行するrails new new_appと、次のようになります。

         run  bundle install
/var/lib/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/ui.rb:36:in `initialize': undefined method `[]' for #<Thor::Shell::Color:0x00000002b25708> (NoMethodError)
    from /usr/lib/ruby/vendor_ruby/bundler/cli.rb:12:in `new'
    from /usr/lib/ruby/vendor_ruby/bundler/cli.rb:12:in `initialize'
    from /usr/lib/ruby/vendor_ruby/bundler/vendor/thor.rb:263:in `new'
    from /usr/lib/ruby/vendor_ruby/bundler/vendor/thor.rb:263:in `dispatch'
    from /usr/lib/ruby/vendor_ruby/bundler/vendor/thor/base.rb:386:in `start'
    from /var/lib/gems/1.9.1/gems/bundler-1.3.5/bin/bundle:20:in `block in <main>'
    from /var/lib/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/friendly_errors.rb:3:in `with_friendly_errors'
    from /var/lib/gems/1.9.1/gems/bundler-1.3.5/bin/bundle:20:in `<main>'

問題のコードui.rbは次のとおりです。

  def initialize(options = {}) 
    if options["no-color"] || !STDOUT.tty?
      Thor::Base.shell = Thor::Shell::Basic
    end 
    @shell = Thor::Base.shell.new
    @level = ENV['DEBUG'] ? "debug" : "info"
  end 
4

1 に答える 1

3

私は自分でそれを修正することができました。上にリンクされた MrYoshiji の投稿は、それが Ruby と Rails の間の非互換性であることを示唆していました。これは基本的に問題でした - これはバージョンの非互換性であり、RVMを使用して Ruby、Rails などのローカル (ユーザー固有の) コピーをインストールすることで解決するのが最善です。

しかし、私はすでにRVMをインストールしていました。解決しなければならないさらなる問題がありました - RVM が関数として実行されていませんでした。これは、端末を/etc/profile起動時にロードするように設定することで解決できます。gnome-terminal でこれを行う方法は、RVM サイトのこちらで説明されています。

ただし、ローカルの bash ファイル ( ~/.bash_aliases. そのため、RVM サイトに示されているように端末設定を変更する代わりに~/.bashrc、行を開いて追加しましたsource ~/.rvm/scripts/rvm。ターミナルを再起動した後、すべてが正常に機能していました。Ruby と Rails の適切なコピーが使用されており、新しい Rails アプリを作成しようとしたときにそのエラーが発生しなくなりました (おそらく、現在、 APT を介してインストールされるシステム全体のコピーではなく、gem も同様です)。

于 2013-05-22T20:46:39.310 に答える