【问题标题】:Why I get syntax error in Rails console if my ruby version is correct?如果我的 ruby​​ 版本正确,为什么在 Rails 控制台中出现语法错误?
【发布时间】:2012-09-09 14:15:00
【问题描述】:

我添加了 gem 'pry-rails',当我运行 rails 控制台时,我收到以下错误:

Loading development environment (Rails 3.2.6)
/Users/rege/.rvm/gems/ruby-1.9.3-p194@network/gems/bundler-1.2.0/lib/bundler/dsl.rb:35:in `eval_gemfile': Gemfile syntax error: (Bundler::GemfileError)
/Users/rege/Code/Network/Gemfile:106: syntax error, unexpected ':', expecting $end
gem 'ruby-readability', require: 'readability'
                                ^
    from /Users/rege/.rvm/gems/ruby-1.9.3-p194@network/gems/bundler-1.2.0/lib/bundler/dsl.rb:7:in `evaluate'
    from /Users/rege/.rvm/gems/ruby-1.9.3-p194@network/gems/bundler-1.2.0/lib/bundler/definition.rb:18:in `build'
    from /Users/rege/.rvm/gems/ruby-1.9.3-p194@network/gems/bundler-1.2.0/lib/bundler.rb:144:in `definition'
    from /Users/rege/.rvm/gems/ruby-1.9.3-p194@network/gems/bundler-1.2.0/lib/bundler.rb:112:in `setup'
    from /Users/rege/.rvm/gems/ruby-1.9.3-p194@network/gems/bundler-1.2.0/lib/bundler/setup.rb:17

Frame number: 0/4
>> RUBY_VERSION
"1.9.3"

我的宝石文件:

...
group :development do
  gem 'rack-mini-profiler'
  gem 'pry-rails'
end
...
gem 'ruby-readability', require: 'readability'
...

当我将 gem 'ruby-readability', require: 'readability' 更改为 gem 'ruby-readability', :require => 'readability' 时,我收到下一个错误:

Loading development environment (Rails 3.2.6)
/Users/rege/.rvm/gems/ruby-1.9.3-p194@network/gems/bundler-1.2.0/lib/bundler/definition.rb:364:in `validate_ruby!': Your Ruby version is 1.8.7, but your Gemfile specified 1.9.3 (Bundler::RubyVersionMismatch)
    from /Users/rege/.rvm/gems/ruby-1.9.3-p194@network/gems/bundler-1.2.0/lib/bundler.rb:112:in `setup'
    from /Users/rege/.rvm/gems/ruby-1.9.3-p194@network/gems/bundler-1.2.0/lib/bundler/setup.rb:17

我的 rvm 信息

> rvm info                                                                                                                                                     /Users/rege/Code/Network 1.9.3p194 develop!@37a80c4

ruby-1.9.3-p194@network:

  system:
    uname:       "Darwin Darek-MacBook.local 11.4.0 Darwin Kernel Version 11.4.0: Mon Apr  9 19:32:15 PDT 2012; root:xnu-1699.26.8~1/RELEASE_X86_64 x86_64"
    bash:        "/bin/bash => GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin11)"
    zsh:         "/bin/zsh => zsh 4.3.11 (i386-apple-darwin11.0)"

  rvm:
    version:      "rvm 1.15.8 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]"
    updated:      "19 hours 59 minutes 37 seconds ago"

  ruby:
    interpreter:  "ruby"
    version:      "1.9.3p194"
    date:         "2012-04-20"
    platform:     "x86_64-darwin11.4.0"
    patchlevel:   "2012-04-20 revision 35410"
    full_version: "ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.0]"

  homes:
    gem:          "/Users/rege/.rvm/gems/ruby-1.9.3-p194@network"
    ruby:         "/Users/rege/.rvm/rubies/ruby-1.9.3-p194"

  binaries:
    ruby:         "/Users/rege/.rvm/rubies/ruby-1.9.3-p194/bin/ruby"
    irb:          "/Users/rege/.rvm/rubies/ruby-1.9.3-p194/bin/irb"
    gem:          "/Users/rege/.rvm/rubies/ruby-1.9.3-p194/bin/gem"
    rake:         "/Users/rege/.rvm/gems/ruby-1.9.3-p194@global/bin/rake"

  environment:
    PATH:         "/Users/rege/.rvm/gems/ruby-1.9.3-p194@network/bin:/Users/rege/.rvm/gems/ruby-1.9.3-p194@global/bin:/Users/rege/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/rege/.rvm/bin:/usr/local/bin:/opt/local/bin:/opt/local/sbin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin"
    GEM_HOME:     "/Users/rege/.rvm/gems/ruby-1.9.3-p194@network"
    GEM_PATH:     "/Users/rege/.rvm/gems/ruby-1.9.3-p194@network:/Users/rege/.rvm/gems/ruby-1.9.3-p194@global"
    MY_RUBY_HOME: "/Users/rege/.rvm/rubies/ruby-1.9.3-p194"
    IRBRC:        "/Users/rege/.rvm/rubies/ruby-1.9.3-p194/.irbrc"
    RUBYOPT:      ""
    gemset:       "network"

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 gem pry


    【解决方案1】:

    rvm info 对您的环境有何评价? ruby -v 呢?最后,which ruby?我怀疑你没有运行正确的 ruby​​,也许你的路径上还有另一个。

    【讨论】:

      【解决方案2】:

      根据this 文档,您应该指定类似

       gem "ruby-readability", :require => 'readability'
      

      您在第二种方法中已经完成了。您收到此错误

       Your Ruby version is 1.8.7, but your Gemfile specified 1.9.3
      

      因为从 Bundler 1.2 开始,您拥有 validate your Ruby version 这个非常有用的新功能,所以如果您想使用 ruby​​ 1.8.7,请在您的 Gemfile 顶部指定

      ruby '1.8.7'
      

      【讨论】:

      • 但问题是因为我不想使用 1.8.7 但我得到了这个奇怪的错误
      【解决方案3】:

      问题是因为我在我的pryrc:require 'pry-vterm_aliases' 中从我的pryrc 中删除了这个问题解决了

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-06
        • 1970-01-01
        • 2012-01-02
        • 1970-01-01
        相关资源
        最近更新 更多