1
有an answer to the question關於如何使lib
文件夾中的類以開發模式重新加載,而無需重新啓動服務器並部分工作。自動重新加載lib文件夾中的類會導致在自動加載常量時檢測到循環依賴關係
所以,我插入以下行development.rb
文件:
ActiveSupport::Dependencies.autoload_paths << File::join(Rails.root, 'lib')
ActiveSupport::Dependencies.explicitly_unloadable_constants.concat(['MyClass1', 'MyClass2'])
,是的,該類重新加載到第一源的變化,但在第二個變化,我得到一個例外:
Circular dependency detected while autoloading constant MyClass2
爲什麼拋出的異常是MyClass2
而不是MyClass1
?因爲我直接實例化它,MyClass1
稍後用於MyClass2
。
下面是一些代碼:
中的類lib\my_class1.rb
:
require 'httpclient/include_client'
class MyClass2
attr_reader :id, :login, :money, :info
def initialize(parameters)
@id = parameters['idUsers']
@login = parameters['login']
@money = parameters['money']
@info = parameters['info']
end
end
class MyClass1
def initialize(parameters)
@base_url = parameters[:base_url]
@version = parameters[:version]
end
def get_test_data
{ huhu: "testvalue7"}
end
end
控制器:
require 'my_class1'
class MyClassTestController < ApplicationController
skip_before_filter :authenticate_user!
def get_test_data_test
ls = MyClass1.new({ base_url: 'http://192.168.0.25', version: '1'})
@res = ls.get_test_data
end
end
模型中沒有代碼。或者你認爲lib文件夾中的類也是一個模型?我已經更新了這個問題。附:您應該明白,只要接受答案出現在這裏,此答覆及其所有評論就應該刪除。我希望接受的答案是你的,所以你會誠實地提升你的聲望。 – Paul