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在启动时加载来解决这个问题。RVM 站点上解释了如何在 gnome-terminal 中执行操作。

但是,这对我来说不是一个好的解决方案,因为它阻止了我的本地 bash 文件(例如~/.bash_aliases)加载。因此,我没有更改 RVM 站点上显示的终端设置,而是打开~/.bashrc并添加了source ~/.rvm/scripts/rvm. 重新启动终端后,一切正常 - 使用了正确的 Ruby 和 Rails 副本,当我尝试创建新的 Rails 应用程序时不再遇到该错误(大概是因为我现在使用的是本地副本gems,而不是通过 APT 安装的系统范围的副本)。

于 2013-05-22T20:46:39.310 回答