带有非Rails数据库设计的Rails

完成新手研究Rails。 可以将Rails与只读模式一起使用,该模式不符合Rails的默认命名和设计约定吗?

例如,我的数据库模式具有基表,这些表使用字符串列作为唯一主键。 例如,名为Jobs的基表可能具有定义为Jobs.Job的唯一主键,值可能为“D01234”。 现在,Jobs的子实体可能是CostCodes,其中唯一主键是CostCodes.Job(返回到Jobs表的FK引用)和CostCodes.CostCode(本地字符串列)的聚合。

对于它的价值……这是Sage Timberline Office数据库。

有什么指针吗?

是的,可以做到。

戴夫托马斯有一篇博客文章描述了一些必要的东西:指令,如

set_table_name "orders" set_primary_key "o_id" 

在ActiveRecord模型定义中。

更多参考资料:

  • ActiveRecord :: Base api
  • Rails Wiki

谷歌搜索“activerecord遗留数据库”应该更多。

您将要为您的特定表打开模型并设置以下内容:

 set_table_name 'user' set_primary_key 'user_name' 

如果您正在管理关系,则可能需要显式指定连接表:

 has_and_belongs_to_many :page, :join_table => 'user_page' 

是的,ActiveRecord(默认的ORM)将允许您自定义您正在访问的数据库所需的任何内容 – 有关详细信息,请参阅Mike’s和Robotsu的答案。

您还可以将ActiveRecord替换为更灵活的另一个ORM。 DataMapper是一个替代品,似乎有一些牵引力。

其他答案已经涵盖了你的问题,但所有这些ActiveRecord问题的一个很好的资源是Apress的Pro ActiveRecord,它真的很好,你应该查一查。