在Rails应用程序中本地使用gem时无法找到文件或常量

时间:2013-03-02 23:21:56

标签: ruby-on-rails ruby-on-rails-3.2 gem bundler

我有一个我正在制作的宝石,它与rails应用程序位于同一级别。

我正在尝试在rails应用程序中使用gem,但是我无法使其工作 - 我试图使用的常量(在gem中定义)由于某种原因无法访问rails应用程序。

我在这里做错了什么?我可以采取哪些步骤来开始调试问题的原因?

在rails控制台中,$:.grep /mygem/向我显示["/Users/zabba/mygem/lib"]

目录结构,包含某些文件的内容:

~/mygem/
  lib/
    mygem/
      some_class.rb
        module Mygem
          class SomeClass
          end 
        end
    mygem.rb
      require 'mygem/some_class'

~/railsapp/
    Gemfile:
      gem 'mygem', path: '../mygem', require: 'mygem'
    app/
      models/
        a_model.rb:
          # require 'mygem' cannot find file
          class AModel
            def hello_world
              SomeClass.new # Cannot find constant
              Mygem::SomeClass.new # Cannot find constant
            end
          end

1 个答案:

答案 0 :(得分:0)

您可以创建一个文件夹vendor/gems并在那里复制您的gem。然后在你的Gemfile

的Gemfile

gem 'mygem', :path => "vendor/gems/mygem-0.0.1"

然后bundle install