2014-10-17 61 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