gpt4 book ai didi

ruby - Sinatra 与现有数据库(不遵守命名约定)

转载 作者:数据小太阳 更新时间:2023-10-29 08:51:10 25 4
gpt4 key购买 nike

我有一个现有的旧版 Firebird 数据库,其中包含非标准的表名和字段名。

我想编写一个可以访问它并显示信息的 Sinatra 应用程序。我已经看到像 dm-is-reflective 这样的东西在数据库具有适当的命名约定时似乎可以工作,但是我如何使用 DataMapper(或 ActiveRecord,无论哪个最简单)来访问这些表?

例如,假设我有这两个表:

Bookshelfs
shelf_id: integer
level: integer
created: timestamp

Book
id: integer
id_of_shelf: integer
title: string
pages: integer

有点像奇怪的命名约定,不遵循任何固定模式,一个表的记录可能“拥有”另一个表中的多个条目,即使没有分配 foreign_key。

您将如何设置 datamapper(或 activerecord)与其通信?

最佳答案

查看此 gem 以在 Sinatra 上使用 ActiveRecord 进行设置: https://github.com/bmizerany/sinatra-activerecord

至于如何定义关系,activerecord可以轻松做到。

class Book < ActiveRecord::Base
belongs_to :bookshelf, :class_name => 'Bookshelf', :foreign_key => 'id_of_shelf'
end

class Bookshelf < ActiveRecord::Base
has_many :books, :class_name => 'Book', :foreign_key => 'id_of_shelf'
end

关于ruby - Sinatra 与现有数据库(不遵守命名约定),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12607297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com