我已将database.yml配置为指向我现有的mysql数据库
如何从中生成模型?
rails generate model existing_table_name
只提供一个emty模型..
答案 0 :(得分:15)
您可以尝试Rmre。它可以为现有模式创建模型,并尝试根据外键信息创建所有关系。
答案 1 :(得分:10)
Rails模型不会显示您的字段,但您仍然可以使用它们。请尝试以下方法。假设您有一个名为ModelName的模型和一个名为“name”的字段,请启动Rails控制台并键入:
ModelName.find_by_name('foo')
如果DB中存在名称,您应该看到结果。
Rails虽然不会推断出关系,但如果您的数据库遵循Rails约定,则可以轻松添加它们。
<强>更新强>
我注意到这种特殊的缺乏显性(“魔法”)是Rails新手混淆的根源。您始终可以查看schema.rb
以查看模型和所有字段。此外,如果您希望在模型文件中查看每个模型的模式,则可以使用annotate_models gem,它将db模式放在模型文件顶部的注释中。
答案 2 :(得分:3)
你的答案是:
$ rake db:schema:dump
这将设置一个新的db/schema.db
来创建数据库的模式。
答案 3 :(得分:1)
ActiveRecord不解析架构定义。它要求DBM表格defs并动态计算出字段。
如果要通过迁移修改表,则使用模式非常有用。
Schema Dumping and You
将帮助您转储它以用作构建迁移的参考。
ActiveRecord对表命名做了一些假设,并期望id
字段成为主键,序列号作为类型。迁移可以帮助您重构表和/或字段名和类型,但您可以通过DBM的命令行执行相同的操作。你不必真正遵循ActiveRecord的风格,但这样做有助于避免奇怪的错误,并让AR推断事情,让你的生活更轻松。
答案 4 :(得分:1)
答案 5 :(得分:0)
看看rare_map gem。 https://github.com/wnameless/rare_map 它适用于Rail 3和4。