【问题标题】:Can't load gem from local path无法从本地路径加载 gem
【发布时间】:2018-02-12 01:37:53
【问题描述】:

我是 creating an azure wrapperdragonfly gem,我已经在 rubygems 上发布了它。现在我将它加载到我的 rails 应用程序的 Gemfile 中:

gem 'dragonfly-azure_data_store',
    git: 'https://github.com/meloncargo/dragonfly-azure_data_store.git',
    branch: :master

gem 会加载,但由于我不断更改它,我已将捆绑程序配置为直接从我的路径加载:

bundle config local.dragonfly-azure_data_store /home/alter/workspace/meloncargo/dragonfly-azure_data_store

当我启动 rails 应用程序时,它会抛出:

/home/alter/.rvm/gems/ruby-2.4.2@productwatcher/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require':无法加载这样的文件——dragonfly-azure_data_store (加载错误)

我尝试将 gem 设置为路径,而无需捆绑器配置:

gem 'dragonfly-azure_data_store',
    path: '/home/alter/workspace/meloncargo/dragonfly-azure_data_store'

但我收到同样的错误。仅作记录,我的本地 gem 与 master 中的更改相同,并且我在本地所做的任何更改(例如:在主类的 def initialize 中添加 puts 'foo')都会在我启动 rails 应用程序时反映出来,但最终引发错误。
知道可能是什么问题吗?

【问题讨论】:

    标签: ruby-on-rails rubygems bundler


    【解决方案1】:

    我刚刚意识到问题与我正在使用 require_reloader gem 有关。
    我创建了an issue 来看看它会发生什么。

    【讨论】:

      【解决方案2】:

      使用参数的相对路径应该可以工作

      gem 'dragonfly-azure_data_store', path: '../dragonfly-azure_data_store'
      

      在你的 ruby​​ 文件中:

      require 'dragonfly'
      require 'dragonfly/azure_data_store'
      

      【讨论】:

      • 那行不通。问题不在于未加载路径,而是在本地加载 gem 时引发了错误。
      • 我发现我可以使用需要类似以下的文件来执行此操作:require 'dragonfly' require 'dragonfly/azure_data_store'
      猜你喜欢
      • 2020-09-08
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 2016-10-01
      相关资源
      最近更新 更多