17

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

如何从中生成模型?

rails generate model existing_table_name

只给出一个空模型..

4

6 回答 6

15

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

于 2012-09-12T10:50:02.837 回答
10

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

ModelName.find_by_name('foo')

给定数据库中存在的名称,您应该会看到结果。

尽管 Rails 不会推断关系,但如果您的数据库遵循 Rails 约定,它们很容易添加。

更新

我注意到这种特别缺乏明确性(“魔术”)是 Rails 新手困惑的根源。您始终可以schema.rb在一个地方查看模型和所有字段。此外,如果您希望在模型文件中查看每个模型的架构,您可以使用annotate_models gem,它将 db 架构放在模型文件顶部的注释中。

于 2010-11-08T00:36:13.223 回答
3

你的答案是:

$ rake db:schema:dump

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

于 2014-03-22T15:09:44.593 回答
1

ActiveRecord 不解析模式定义。它向 DBM 询问表 defs 并即时计算出字段。

如果您要通过迁移修改表,那么拥有架构很有用。 Schema Dumping and You将帮助您转储它以用作构建迁移的参考。

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

于 2010-11-08T01:21:37.750 回答
1

可以试试魔术模型生成器

于 2010-11-10T06:47:01.967 回答
0

看一下rare_map gem。 https://github.com/wnameless/rare_map 它适用于 Rail 3 和 4。

于 2014-02-27T14:51:34.810 回答