我用模型創建了一個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」)。需要路徑}'從? –