2011-01-21 29 views
10

Tengo un esquema bastante grande DB y unos 100 millones de filas con I le gustaría exponer a la web, utilizando los carriles 3. Mediante la exposición a la web, me refiero a lo siguiente:Base de datos para la aplicación CRUD, Rails 3

  • una API REST (JSON & xml)
  • Vistas a presentar los datos jerárquicamente
  • editores para partes específicas de los datos

Básicamente, lo que estoy buscando es una forma de ejecutar los carriles sc comando affold con los argumentos apropiados automáticamente. Sé que magic_model puede hacer algunas partes de la ingeniería inversa, pero no parece funcionar con Rails 3.

¿Existe alguna herramienta que pueda automatizar la generación de andamios?

Respuesta

0

acabo de cambiar un poco un guión mío:

#!/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 

lo probé en una base de datos de la mía (yo uso solamente MySQL) y creo que su salida es bastante bueno. Básicamente imprime los comandos de andamio. No sé si es una buena solución para ti, pero es un buen punto de partida en mi humilde opinión.

3

usted podría dar los siguientes gemas intentarlo:

  • ActiveAdmin -> A pesar de más de un marco de administración, que tiene una interfaz de usuario apaciguar y acertadamente satisfacer sus necesidades de andamios.

  • ActiveScaffold -> Un simple generación de auto-andamio de marco

+0

ActiveAdmin es hermosa por cierto. ¿Pero ofrece una API además de las páginas web generadas? ActiveScaffold se ve más cerca de lo que estaba buscando cuando hice la pregunta, pero al examinar su (escasa) documentación no pude ver sus ventajas sobre el comando de andamios de rieles normales. Por ejemplo, no buscará en la base de datos para extraer relaciones entre los modelos. magic_model hizo esto. –

+0

No creo que ActiveAdmin ofrezca una APO REST :(Sin embargo, siempre puedes hacerlo con ActiveResource. Http://api.rubyonrails.org/classes/ActiveResource/Base.html – dexter

0

Puede utilizar reverse_scaffold. Hace lo que su nombre implica, es decir, crea automáticamente el andamiaje de la tabla existente en la base de datos heredada.

Se puede encontrar en GitHub:

https://github.com/chrugail/reverse_scaffold (carriles 3 version)

También hay una versión de 2 carriles por ahe (el autor original)

Cuestiones relacionadas