如何使用postgres数据库,就好像它是Rails的原生数据库一样

时间:2017-10-09 03:26:41

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

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

1 个答案:

答案 0 :(得分:0)

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

但如果您是Rails的新手,我肯定会建议您手动执行此操作,原因如下:

  1. 那些宝石不会理解命名空间(我的实际猜测),例如如果您有admin_usersadmin_other_tableadmin_suggestions表,则ruby中最合理的类名称为Admin::UserAdmin::OtherTableAdmin::Suggestion,但这些宝石无法理解这一点。

  2. 如果将模型命名为与表格不同(然后使用self.table_name=映射正确的表格更有意义,那么宝石将无济于事。

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

  4. 可能还有更多这些案例。所以我强烈建议手工完成,这样你就可以完全控制编写什么类型的代码。