我是rails世界的新手,我需要使用现有数据库作为rails项目,例如我有一个“游戏”表,没有列created_at和updated_at,如果我在postgres终端中添加它们,rails会将我的表识别为对象(例如“游戏”)?或者我应该为我的数据库中的每个表生成模型?获取像对象一样的所有表并从控制器中使用它们的正确方法是什么?
答案 0 :(得分:0)
正如评论中所提到的,一个版本是使用某种逆向工程gem,它会自动为你的数据库表生成具有所有关联,外键等的模型。
但如果您是Rails的新手,我肯定会建议您手动执行此操作,原因如下:
那些宝石不会理解命名空间(我的实际猜测),例如如果您有admin_users
,admin_other_table
,admin_suggestions
表,则ruby中最合理的类名称为Admin::User
,Admin::OtherTable
,Admin::Suggestion
,但这些宝石无法理解这一点。
如果将模型命名为与表格不同(然后使用self.table_name=
映射正确的表格更有意义,那么宝石将无济于事。
如果需要仅以一种方式定义关联,那么模型将在其中获得大量无用的代码(如果您有“用户有许多文章的外键为author_id
”也许你不需要user.articles
方法,但无论如何你都会得到它。
可能还有更多这些案例。所以我强烈建议手工完成,这样你就可以完全控制编写什么类型的代码。