我用模型创建了一个Gem(实际上,从主项目中提取它)以在我们平台中的项目之间共享。宝石与模型
我们有几十种型号,所以不是要求他们一个接一个,我写了下面的代码:
Gem.find_files("my_gem/models/*.rb").each { |path| require path }
我访问具有my_gem在创业板上市的文件并运行rails c
我得到的项目之一下面的输出:
/Users/myuser/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.8/lib/active_record/dynamic_matchers.rb:50:in `method_missing': undefined method `has_attached_file' for #<Class:0x007fad4b93ccb8> (NoMethodError)
我的一个模型是用宝石回形针,是什么奇怪的是:
- 如果我删除了使用回形针
require "my_gem/models/paperclip_model"
上述声明加载所有的车型 自动,rails c
运行正常 - 如果我尝试包括onlye模型行我收到了同样的错误
于是我改变我的宝石不加载任何模型,并且当我尝试引用来自Rails控制台的任何模型时,它说该类未加载,但后来我运行Gem.find_files("my_gem/models/*.rb").each { |path| require path }
或require "my_gem/models/paperclip_model"
'它们完美地工作,我可以使用该模型。
有没有人见过同样的问题?
在Rails代码中,你调用了'Gem.find_files(“my_gem/models/*。rb”)。需要路径}'从? –