rails 3:如何为现有数据库表生成模型

我已经将我的database.yml配置为指向我现有的mysql数据库

我怎样才能从中生成模型?

rails generate model existing_table_name 

只提供一个emty模型..

Rails模型不会显示您的字段,但您仍然可以使用它们。 请尝试以下方法。 假设您有一个名为ModelName的模型和一个名为“name”的字段,请启动Rails控制台并键入:

 ModelName.find_by_name('foo') 

给定DB中存在的名称,您应该看到结果。

Rails不会推断关系,但如果您的数据库遵循Rails约定,则可以轻松添加它们。

更新

我注意到这种特殊的缺乏显性(“魔法”)是Rails的新手混淆的根源。 您始终可以查看schema.rb以在一个位置查看模型和所有字段。 此外,如果您希望在模型文件中查看每个模型的模式,则可以使用annotate_models gem,它将db模式放在模型文件顶部的注释中。

你可以尝试Rmre 。 它可以为现有模式创建模型,并尝试基于外键信息创建所有关系。

你的答案是:

 $ rake db:schema:dump 

这将设置一个新的db/schema.db来创建数据库的模式。

ActiveRecord不解析架构定义。 它要求DBM表格defs并动态计算出字段。

如果要通过迁移修改表,则使用模式非常有用。 Schema Dumping and You将帮助您转储它以用作构建迁移的参考。

ActiveRecord对表命名做了一些假设,并期望id字段是主键,序列号作为类型。 迁移可以帮助您重构表和/或字段名和类型,但您可以通过DBM的命令行执行相同的操作。 你不必真正遵循ActiveRecord的风格,但这样做有助于避免奇怪的错误,让AR推断事情,让你的生活更轻松。

可以试试Magic Model Generator