Rails中的Camel-Cased外键名称

时间:2010-11-24 05:44:45

标签: ruby-on-rails activerecord foreign-keys uppercase

所以我有一个现有的数据库,我试图通过ActiveRecord进行操作。所有列,表和数据库名称都是驼峰式的,即。 myColumnOne等。这并没有真正造成问题,除了当我试图定义表之间的关联时,我无法让Rails接受并仅留下我对外键名称的输入。

例如:我正在尝试定义一个名为cableModems的表和一个名为cmModels的表之间的关联,其中    cableModem has_one:cmModel,:foreign_key => “cmModelId”

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

我的问题是:有没有办法让Rails接受套管?或者我是否需要在没有关联的情况下解决这个问题?

非常感谢!

2 个答案:

答案 0 :(得分:0)

在深入研究Ruby on Rails API文档以跟踪has_one的执行路径之后,很快就会发现没有快速简便的方法来阻止自动de-camelCasing。使用命名范围和一个或两个自定义方法,您应该能够非常轻松地复制has_one的功能,因此我建议现在提前说明关联,并可能将其作为Rails上的票据提交{{3 }}。

答案 1 :(得分:0)

您的数据库是否真的依赖于案例?如果你写了

,它会不会起作用
has_one :cm_model, :foreign_key => "cmmodelid"

我也会按如下方式编写你的课程:

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

这有什么用?