2010-11-24 66 views
0

所以我有一个现有的数据库,我试图通过ActiveRecord来操纵。所有列,表和数据库名称都是骆驼形的,即。 myColumnOne等等。这并不是真正的问题,除了当我试图定义表之间的关联时,我无法让Rails接受并且仅仅为外键名保留我的输入。Rails中的骆驼式外键名称

例如:我试图定义一个表名为cableModems和一张桌子叫cmModels,其中 CableModem的HAS_ONE之间的关联:cmModel,:foreign_key => “cmModelId”

的Rails似乎想说foreign_key实际上是cm_model_id。即使我按照上面显示的方式输入它。

我的问题是这样的:有什么办法让Rails接受外壳?或者我需要去解决这个问题,而没有关联?

非常感谢!

回答

0

在深入挖掘Ruby on Rails API文档以追踪has_one的执行路径后,很快就很清楚,没有快速简单的方法来防止自动脱机。使用命名范围和一个或两个自定义方法,您应该能够相当容易地复制has_one的功能,因此我建议先前关联该关联,并可能将其作为Rails Lighthouse上的票证提交。

+0

对不起,花了这么久才找回来。这是完全准确的。我只写了几个简单的方法,完全绕过帮手,现在找到了。谢谢你的帮助 – 2010-12-13 04:35:03

0

数据库是否真的依赖于案例?那岂不是只是工作,如果你写

has_one :cm_model, :foreign_key => "cmmodelid" 

我也会让你写的类如下:

class CableModem < ActiveRecord::Base 
    set_table_name "cableModems" 
    set_primary_key "cableModemId" 
end 

是否帮助以任何方式?