【问题标题】:Error after upgrade from rails 3.1 to 3.2.6从 rails 3.1 升级到 3.2.6 后出错
【发布时间】:2012-06-16 23:43:05
【问题描述】:

我为自己设定了在本地 mac book air lion 开发环境中将我的应用程序从 rails 3.1 升级到 rails 3.2.6 的任务。我关注了guide 并升级了 ruby​​,我的所有 gem 似乎都已安装,并且 rails -v 给出了 rails 3.2.6 的答案。如果我运行任何 rails 命令,例如rails c 启动控制台,我明白了:

MacBook-Air:myapp bob$ rails c
/Users/bob/.rvm/gems/ruby-1.9.3-p0@rails32/gems/pubnub-ruby-0.0.9/lib/pubnub-ruby.rb:1:in `require': cannot load such file -- ./pubnub.rb (LoadError)
    from /Users/bob/.rvm/gems/ruby-1.9.3-p0@rails32/gems/pubnub-ruby-0.0.9/lib/pubnub-ruby.rb:1:in `<top (required)>'
    from /Users/bob/.rvm/gems/ruby-1.9.3-p0@rails32/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
    from /Users/bob/.rvm/gems/ruby-1.9.3-p0@rails32/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
    from /Users/bob/.rvm/gems/ruby-1.9.3-p0@rails32/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
    from /Users/bob/.rvm/gems/ruby-1.9.3-p0@rails32/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'
    from /Users/bob/.rvm/gems/ruby-1.9.3-p0@rails32/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
    from /Users/bob/.rvm/gems/ruby-1.9.3-p0@rails32/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
    from /Users/bob/.rvm/gems/ruby-1.9.3-p0@rails32/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
    from /Users/bob/work/myapp/config/application.rb:13:in `<top (required)>'
    from /Users/bob/.rvm/gems/ruby-1.9.3-p0@rails32/gems/railties-3.2.6/lib/rails/commands.rb:39:in `require'
    from /Users/bob/.rvm/gems/ruby-1.9.3-p0@rails32/gems/railties-3.2.6/lib/rails/commands.rb:39:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

是的,我确实在我的应用程序中使用了 pubnub - 它一直运行良好,所以我不怀疑这一定是问题所在。

application.rb 第 13 行(可能不相关)是

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  Bundler.require *Rails.groups(:assets => %w(development test))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end

我会在部署之前预编译资产。

/Users/bob/.rvm/gems/ruby-1.9.3-p0@rails32/gems/pubnub-ruby-0.0.9/lib/pubnub-ruby.rb:1 文件存在,我打开了它很好。

有谁知道发生了什么/是 pubnub 特定的还是其他的?我不确定如何进一步排除故障,到目前为止,谷歌搜索还没有发现任何问题。

谢谢,

戴夫

【问题讨论】:

    标签: ruby-on-rails macos rvm


    【解决方案1】:

    我在repo for that gem 中看不到文件pubnub-ruby.rb。尝试运行$ bundle install$ gem update pubnub-ruby

    【讨论】:

    • gem update pubnub-ruby 更新已安装的 gems 没什么可更新的——它似乎认为它是最新的。很奇怪,pubnub-ruby.rb 只包含: require "./pubnub.rb" 如果我​​将其更改为 require "pubnub.rb" - 它传递了该错误但卡在 pubnub.rb:24:in `require' : 无法加载此类文件 -- ./lib/PubnubCrypto.rb (LoadError) ... 是的,找不到 pubnubCrypto
    • 从该仓库的历史来看,他们似乎做了一些名称更改。也许尝试使用$ gem uninstall pubnub-ruby 然后$ gem install pubnub-ruby 卸载并重新安装gem
    • 已解决 - 您为我指明了正确的方向。似乎 pubnub-ruby 停止在 0.0.9 ,切换到 'pubnub' gem 并安装了 0.1.9 并清除了错误。谢谢。
    • 另请注意,新的 PubNub Ruby Gem 被称为“pubnub”并使用以下之一来安装“pubnub”ruby:sudo gem install pubnubsudo gem1.9 install pubnub rubygems.org/gems/pubnub
    猜你喜欢
    • 2012-06-19
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多