在Rails 3中为现有数据库模式自动生成脚手架

时间:2011-03-04 00:47:06

标签: ruby-on-rails ruby-on-rails-3 code-generation

我有现有的数据库,我想自动生成控制器和视图,包括具有字段大小而不是空验证的模型。我查看了一个名为魔术模型生成器的项目,但它看起来很旧,只能根据我的判断创建模型。

我希望这主要是节省时间,并且我理解大多数控制器和视图对于面向功能的用户都没有用。我将挑选出我不需要的内容,并将大部分内容移至管理页面。

有没有这样做的工具?

TIA!

编辑:我想创建实际文件,但不想要动态管理员。我将使用控制器并查看站点的一些前面部分。

4 个答案:

答案 0 :(得分:14)

不确定是否适用于Rails 3,但适用于Rails 4! 以下步骤教导如何从现有数据库构建模型,表单,控制器等。

  1. 建模并部署您的数据库,但这与您的rails应用程序无关。
  2. 将您的rails app config / database.yml指向此类数据库
  3. 打开终端
  4. 将目录更改为rails app root(在终端 cd / path / to / my / rails / app / 中运行)。
  5. 在终端 rake db:schema:dump (生成schema.rb)中运行
  6. 安装宝石'schema_to_scaffold'(https://github.com/frenesim/schema_to_scaffold/
  7. 在终端脚手架中运行以生成rails scaffold命令并按照要求执行
  8. 在分离的.txt文件中复制第7步生成的“rails scaffold命令”
  9. 单独运行每个“rails scaffold命令”
  10. 快乐!
  11. 希望它有所帮助!

答案 1 :(得分:5)

我相信这个问题在这里得到解答: How to run `rails generate scaffold` when the model already exists? 和这里: rails g scaffold for existing model and DB table

答案简短(例如model = Post)

rails generate scaffold_controller Post

答案 2 :(得分:3)

答案 3 :(得分:3)

我认为您可以使用它来解决部分问题。在将rails应用程序指向旧数据库之后,执行rake db:schema:dump,您可以使用名为schema_to_scaffold的gem来生成脚手架脚本。 它输出:

rails g scaffold users fname:string lname:string bdate:date email:string encrypted_password:string

从schema.rb我们重命名的schema.rb。查看here