База данных для приложения CRUD, Rails 3

У меня довольно большая схема БД и около 100 М строк, которые я бы хотел открыть в Интернете, используя Rails 3. Являясь в Интернете, я имею в виду следующее:

  • REST api (json и xml)
  • Представления для представления данных иерархически
  • Редакторы для определенных частей данных

В принципе, то, что я ищу, - это способ запуска команды rails scaffold с соответствующими аргументами автоматически. Я знаю, что magic_model может выполнять некоторые части самого обратного проектирования, но он, похоже, не работает с Rails 3.

Есть ли какой-нибудь инструмент, который может автоматизировать создание лесов?

Ответ 1

Вы можете попробовать следующие камни:

  • ActiveAdmin - > Хотя больше админ-фреймворк, он имеет приятный пользовательский интерфейс и точно удовлетворит ваши потребности в подмостках.

  • ActiveScaffold → Простая инфраструктура генерации автошаблонов

Ответ 2

Я немного изменил свой script:

#!/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), и я думаю, что ее выход неплохой. В основном он печатает команды эшафотов. Я не знаю, является ли это хорошим решением для вас, но это хорошая отправная точка IMHO.

Ответ 3

Вы можете использовать reverse_scaffold. Он делает то, что подразумевается под именем, т.е. Автоматически создает строительные леса из существующей таблицы в старой базе данных.

Вы можете найти его на github:

https://github.com/chrugail/reverse_scaffold (версия rails 3)

Существует также версия rails 2 от ahe (автор оригинала)