【问题标题】:Rails with Non-Rails Database DesignRails 与非 Rails 数据库设计
【发布时间】:2009-03-16 17:44:36
【问题描述】:

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

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

物有所值...这是 Sage Timberline Office 的库存数据库。

任何指针?

【问题讨论】:

    标签: ruby-on-rails ruby database


    【解决方案1】:

    是的,可以做到。

    Dave Thomas 有 a blog post 描述了一些必要的东西:诸如

    之类的指令
    set_table_name  "orders"
    set_primary_key "o_id"
    

    在您的 ActiveRecord 模型定义中。

    更多参考资料:

    谷歌搜索“activerecord legacy database”应该会多一些。

    【讨论】:

    【解决方案2】:

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

    set_table_name 'user'
    set_primary_key 'user_name'
    

    如果您要管理关系,您可能需要明确指定连接表:

    has_and_belongs_to_many :page, :join_table => 'user_page'
    

    【讨论】:

      【解决方案3】:

      是的,ActiveRecord(默认 ORM)可让您自定义您所访问的数据库所需的任何内容 - 有关详细信息,请参阅 Mike 和 Robotsu 的答案。

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多