所以我有一个现有的数据库,我试图通过ActiveRecord进行操作。所有列,表和数据库名称都是驼峰式的,即。 myColumnOne等。这并没有真正造成问题,除了当我试图定义表之间的关联时,我无法让Rails接受并仅留下我对外键名称的输入。
例如:我正在尝试定义一个名为cableModems的表和一个名为cmModels的表之间的关联,其中 cableModem has_one:cmModel,:foreign_key => “cmModelId”
Rails似乎想说foreign_key实际上是cm_model_id。即使我按照上面显示的方式输入它。
我的问题是:有没有办法让Rails接受套管?或者我是否需要在没有关联的情况下解决这个问题?
非常感谢!
答案 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
这有什么用?