2014-10-17 63 views
0

我正在寫一個ruby gem,它將數據導入到ActiveRecord中,並將用戶想要放入的數據放入環境中。 我能夠通過ActiveRecord :: Base.establish_connection(...)連接到環境,但我無法弄清楚如何訪問傳入的類來執行,比如Location.create(...)。通過ActiveRecord訪問一個類:: Base

我不想通過執行傳遞它,因爲它會跳過驗證,但我懷疑我可以訪問ActiveRecord類。

我發現,我認爲將有助於一篇文章(http://erikonrails.snowedin.net/?p=212),但這個我把:

ActiveRecord::Base.const_get(model).create(attributes) 

並獲得

uninitialized constant ActiveRecord::Base::Location (NameError) 

當我嘗試用ActiveRecord上述::基地.connection.const_get(model)我只是得到一個巨大的對象。我只是想找到一種方法來獲得類似如何在Rails中調用User.create()。任何幫助將非常感激。

+0

針對前兩個答案,這個代碼在創業板正在開展不Rails本身,因此我首先建立一個連接。對於常量化方法,我得到了「未初始化的常量用戶(NameError)」,對於模塊方法,我得到了「未初始化的常量Module :: User(NameError)」。 @spickermann – user3043604 2014-10-17 15:19:12

+0

@Зелёный標記你也 – user3043604 2014-10-17 15:20:43

回答

0

沒有必要在ActiveRecord::Base上調用它,因爲該模型是ActiveRecord::Base的子類,但在ActiveRecord::Base名稱空間中不是常量。

,而不是僅僅把它上Module

Module.const_get(model).create(attributes) 
+0

我仍然得到這個錯誤。爲了澄清,上面的代碼位於我的Gem模塊中,與ActiveRecord無關。我認爲也許有一種方法來ActiveRecord,會給我模型類放入。 – user3043604 2014-10-17 21:40:49