2012-07-03 118 views
0

我有一個類Test它在lib文件夾中,我想在我的控制器類名稱class UsersController < ApplicationController的一個方法內動態創建此類的對象。我怎樣才能做到這一點?在Ruby on Rails中動態加載類

class UsersController < ApplicationController 
    def address 
    {"here I want to create the object of Test class"} 
    end 
end 
+0

你是什麼意思下的「動態」?你想實例化它或什麼? – Matzi

+0

是的,我正好想實例化它,但在此之前,在我的控制器類中沒有任何Test類的引用(我沒有在UserController類中包含Test Class)。所以在運行時,我想添加Test類的引用,並且使Test類的對象和訪問Test類的方法。 – Ganesh

回答

1

在Ruby中,你不能像在C++創建對象,你可以用Object::new方法只創建動態對象。因此,要建立Test類,你寫的簡單實例:

test = Test.new 
+0

但我希望測試類的對象在運行時和編譯前我的控制器類不知道測試類的任何引用意味着我不包括測試類到控制器類中。 – Ganesh

+0

那麼問題是什麼?如果你的測試類在'lib'中,那麼它將在需要時自動加載。 – Hauleth

0

中有紅寶石沒有compilition。如果測試是在c的主要範圍中定義的,那麼Test就是不變的,可以在任何地方使用。

0

Ruby是解釋型語言,所以沒有編譯phase.in config/application.rb加載lib文件夾或文件,因此啓動時會自動加載這些文件。現在如果你想要所有方法的測試類實例只需創建方法創建實例並加載方法之前使用before_filter