【问题标题】:How use a postgres database as if it were native to Rails如何使用 postgres 数据库,就好像它是 Rails 原生的一样
【发布时间】:2017-10-09 03:26:41
【问题描述】:

我是 Rails 世界的新手,我需要为 Rails 项目使用现有数据库,例如,如果我在 postgres 终端中添加它们,我有一个没有列 created_at 和 updated_at 的“游戏”表,rails 会将我的表格识别为对象(例如“游戏”)?或者我应该为我的数据库中的每个表生成模型?像对象一样获取所有表并从控制器中使用它们的正确方法是什么?

【问题讨论】:

  • 搜索“rails 逆向工程 postgres”

标签: postgresql activerecord ruby-on-rails-5


【解决方案1】:

正如评论中提到的,一个版本是使用某种逆向工程 gem,它会自动为您的数据库表生成模型,其中包含所有关联、外键等。

但如果您是 Rails 新手,我绝对建议您手动操作,原因如下:

  1. 那些宝石不会理解命名空间(我的一个可靠猜测),例如如果你有一个admin_usersadmin_other_tableadmin_suggestions 表,那么在 ruby​​ 中最合理的类名应该是 Admin::UserAdmin::OtherTableAdmin::Suggestion,但这些宝石无法理解这一点。

  2. 如果将模型命名为不同于表的名称更有意义(然后将正确的表映射为 self.table_name=,gems 将无济于事。

  3. 如果只需要以一种方式定义关联,那么您的模型中将包含大量无用的代码(如果您有“用户有许多外键为 author_id 的文章”也许您不需要user.articles 方法,但无论如何你都会得到它。

可能还有更多这样的案例。因此,我强烈建议您手动完成,这样您就可以完全控制所编写的代码类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 2019-10-19
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    相关资源
    最近更新 更多