2011-01-21 13 views
10

Ho un abbastanza grande schema di DB e circa 100 righe con vorrei esporre al web, utilizzando Rails 3. Esponendo al web, voglio dire quanto segue:database per applicazioni CRUD, Rails 3

  • un API REST (jSON & xml)
  • Visualizzazioni per presentare i dati gerarchicamente
  • Editor per parti specifiche dei dati di

in sostanza, quello che sto cercando è un modo per eseguire i binari sc comando affold con gli argomenti appropriati automaticamente. So che magic_model può eseguire alcune parti del reverse engineering, ma non sembra funzionare con Rails 3.

Esiste uno strumento in grado di automatizzare la generazione di scaffold?

risposta

0

ho appena cambiato un po 'uno script di mine:

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

ho provato su un database di mia (io uso solo mysql) e penso che la sua uscita è abbastanza buono. Fondamentalmente stampa i comandi dello scaffold. Non so se è una buona soluzione per te ma è un buon punto di partenza IMHO.

3

si potrebbe dare le seguenti gemme una prova:

  • ActiveAdmin -> Anche se più di un quadro di amministrazione, ha un'interfaccia utente appagante e sarà giustamente soddisfare le vostre esigenze ponteggi.

  • ActiveScaffold -> Un semplice generazione di auto-impalcatura quadro

+0

ActiveAdmin è bello davvero. Ma offre un'API oltre alle pagine Web generate? ActiveScaffold sembra più vicino a quello che stavo cercando quando ho posto la domanda, ma sfogliando la sua (scarsa) documentazione non sono riuscito a vedere i suoi vantaggi rispetto al normale comando scaffold rails. Ad esempio, non esaminerà il database per estrarre le relazioni tra i modelli. magic_model ha fatto questo. –

+0

Non penso che ActiveAdmin offra un API REST :(Ma potresti sempre farlo con ActiveResource. Http://api.rubyonrails.org/classes/ActiveResource/Base.html – dexter

0

È possibile utilizzare reverse_scaffold. Fa ciò che il nome implica, cioè crea automaticamente lo scaffolding dalla tabella esistente nel database legacy.

Lo si può trovare su github:

https://github.com/chrugail/reverse_scaffold (rotaie versione 3)

C'è anche un rotaie 2 versione da AHE (l'autore originale)