我已将我的 database.yml 配置为指向我现有的 mysql 数据库
如何从中生成模型?
rails generate model existing_table_name
只给出一个空模型..
我已将我的 database.yml 配置为指向我现有的 mysql 数据库
如何从中生成模型?
rails generate model existing_table_name
只给出一个空模型..
你可以试试Rmre。它可以为现有模式创建模型,并尝试基于外键信息创建所有关系。
Rails 模型不会显示您的字段,但您仍然可以使用它们。试试下面的。假设你有一个名为 ModelName 的模型和一个名为“name”的字段,启动 Rails 控制台并输入:
ModelName.find_by_name('foo')
给定数据库中存在的名称,您应该会看到结果。
尽管 Rails 不会推断关系,但如果您的数据库遵循 Rails 约定,它们很容易添加。
更新
我注意到这种特别缺乏明确性(“魔术”)是 Rails 新手困惑的根源。您始终可以schema.rb
在一个地方查看模型和所有字段。此外,如果您希望在模型文件中查看每个模型的架构,您可以使用annotate_models gem,它将 db 架构放在模型文件顶部的注释中。
你的答案是:
$ rake db:schema:dump
这将设置一个新db/schema.db
的来创建数据库的模式。
ActiveRecord 不解析模式定义。它向 DBM 询问表 defs 并即时计算出字段。
如果您要通过迁移修改表,那么拥有架构很有用。
Schema Dumping and You
将帮助您转储它以用作构建迁移的参考。
ActiveRecord 对表命名做了一些假设,期望id
字段为主键,以序号为类型。进行迁移将帮助您重构表和/或字段名和类型,但您可以通过 DBM 的命令行执行相同的操作。您实际上不必遵循 ActiveRecord 的风格,但这样做有助于避免奇怪的错误,并让 AR 推断事物以使您的生活更轻松。
可以试试魔术模型生成器
看一下rare_map gem。 https://github.com/wnameless/rare_map 它适用于 Rail 3 和 4。