数据库到CRUD应用程序,Rails 3

时间:2011-01-21 09:20:48

标签: ruby-on-rails-3 crud

我有一个相当大的数据库架构和大约100M行,我希望使用Rails 3向Web公开。通过暴露给Web,我的意思是:

  • REST api(json& xml)
  • 以层次方式呈现数据的视图
  • 编辑数据的特定部分

基本上,我正在寻找的是一种自动运行带有适当参数的rails scaffold命令的方法。我知道magic_model本身可以完成逆向工程的某些部分,但它似乎不适用于Rails 3.

有没有可以自动生成脚手架的工具?

3 个答案:

答案 0 :(得分:3)

您可以尝试以下宝石:

  • ActiveAdmin - >虽然更多的是管理框架,但它具有令人满意的用户界面,并且能够恰当地满足您的脚手架需求。

  • ActiveScaffold - >一个简单的自动脚手架生成框架

答案 1 :(得分:0)

我刚改变了一下我的剧本:

#!/usr/bin/env ruby

require 'rubygems'
require 'active_record'
require 'active_support'
require 'logger'

require 'fileutils'

ActiveRecord::Base.establish_connection(YAML::load(File.open('database.yml')))

ActiveRecord::Base.logger = Logger.new(File.open('database.log', 'a'))



for table in ActiveRecord::Base.connection.tables  

  table_class=table.classify
  eval("class #{table_class} < ActiveRecord::Base;set_table_name \"#{table}\";end")

  columns = []
  for column in Kernel.const_get(table_class).columns
      columns << "#{column.name}:#{column.type}"
  end

  puts "rails generate scaffold #{table_class} #{columns.join(' ')}"

end

我在我的数据库上尝试过(我只使用mysql),我认为它的输出非常好。基本上它打印脚手架命令。我不知道这对你来说是不是一个好的解决方案,但这是一个公平的起点恕我直言。

答案 2 :(得分:0)

您可以使用reverse_scaffold。它完成了名称所暗示的内容,即自动从遗留数据库中的现有表创建脚手架。

你可以在github上找到它:

https://github.com/chrugail/reverse_scaffold(rails 3版)

ahe(原作者)还有一个rails 2版本