我已经配置好了我的database.yml文件,使其指向我的现有mysql数据库。
如何从它生成模型?
rails generate model existing_table_name
只会返回一个空的模型。
我已经配置好了我的database.yml文件,使其指向我的现有mysql数据库。
如何从它生成模型?
rails generate model existing_table_name
只会返回一个空的模型。
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 请求表定义并动态确定字段。
如果您要通过迁移修改表,则拥有模式非常有用。模式转储和您
将帮助您将其转储以用作构建迁移的参考。
ActiveRecord 对表命名做出了一些假设,并期望 id
字段为主键,类型为顺序编号。拥有迁移将帮助您重构表和/或字段名称和类型,但您也可以通过 DBM 的命令行执行相同的操作。您不必遵循 ActiveRecord 的风格,但这样做有助于避免奇怪的错误,并让 AR 推断事情以使您的生活更轻松。
可以尝试使用魔法模型生成器