代码之家  ›  专栏  ›  技术社区  ›  Yurish

从Rails 2中的现有表中创建模型

  •  5
  • Yurish  · 技术社区  · 15 年前

    我有一个带表的数据库。我想在我的Rails应用程序中从现有的表中创建一个模型。如我所知,这种功能是可用的,并按如下方式完成:

    script/generate scaffold model_name --skip-migration


    当然,我在database.yml文件中定义了我的数据库。scaffold为我生成了一个带有控制器和视图的模型。我的表名与Rails的表名不同(它不正确,不遵循约定),我向控制器添加了set_table_name。但是,当我调用index方法时,在我的页面上我只有一组符号,但没有数据库中的数据。在index.html.erb中,我只有scaffold生成的代码。如何打印出数据库数据?

    1 回复  |  直到 15 年前
        1
  •  7
  •   Steve Weet    15 年前

    您是否从现有数据库生成了架构文件?如果运行命令

    rake db:schema:dump
    

    然后重新生成你的脚手架,这样可以解决问题。

    此外,您可能希望退房 Dr Nic's Magic Model generator . 这将为所有现有表生成模型,并尝试猜测关系。如果Rails无法理解您的表命名,那么这可能不起作用。

    更新

    我通常不使用默认的scaffold,但是我自己已经对此进行了测试,并且如果您跳过迁移并且不传递任何列名称/类型对,那么scaffold生成器将不会在模板中创建任何内容来呈现列。

    你也有两个选择

    1. 传入列名对并跳过迁移或
    2. 下载Ryan Bates Nifty Scaffold generator 即使指定了--skip migration,也将使用列名创建脚手架。