2017-10-09 54 views
1

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

+0

搜索“rails reverse engineering postgres” –

回答

0

正如评论所说,一个版本是使用某种逆向工程的宝石,将自动与所有关联生成数据库表的模型,外键等

,但如果你是新来的Rails ,我肯定会建议你手工做这件事,原因有几个:

  1. 那些宝石不会理解命名空间(我的一个猜测)例如如果你有admin_users,admin_other_table,admin_suggestions表,红宝石中最合理的类名是Admin::User,Admin::OtherTable,Admin::Suggestion,但是这些宝石没有办法理解这一点。

  2. 如果它更有意义的模式命名不是表不同(然后用self.table_name=映射正确的表,宝石也无济于事。

  3. 如果协会需要定义只有一个办法那你模型会得到很多代码,只是没用(如果你有“用户有很多文章,外键为author_id”,也许你不需要user.articles方法,但是你会去得到它。

可能有更多的这些情况。所以我w应强烈建议手动完成,以便完全控制写入的代码类型。

相关问题