Приложение от базы данных к CRUD, Rails 3 - PullRequest
10 голосов
/ 21 января 2011

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

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

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

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

Ответы [ 3 ]

3 голосов
/ 23 августа 2011

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

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

  • ActiveScaffold -> Простая структура генерации авто-лесов

0 голосов
/ 28 августа 2011

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

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

https://github.com/chrugail/reverse_scaffold (версия с направляющими 3)

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

0 голосов
/ 21 августа 2011

Я только немного изменил свой скрипт:

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

...