2013-01-24 7 views
5

È possibile creare controller, modelli e visualizzazione dal database esistente?Ruby On Rails: Crea visualizzazione modelli e controller dal database esistente

Non sono riuscito a trovare il comando su googling.

Qui sto parlando di Reverse Engineering

+0

Solo per curiosità, se si utilizza 'Ruby on rails' allora perché si vuole creare dal database e perché no da' rotaie comando Line'? –

+0

Vorrei sapere il comando per eseguire questa operazione dalla riga di comando rails. Puoi fornirlo? – neeraj

risposta

2

È necessario creare semplice modello per ogni tabella con relazioni, e quindi è possibile

[rails3] > rails generate scaffold_controller Club name:string exclusive:boolean 
     create app/controllers/clubs_controller.rb 
     invoke erb 
     create app/views/clubs 
     create app/views/clubs/index.html.erb 
     create app/views/clubs/edit.html.erb 
     create app/views/clubs/show.html.erb 
     create app/views/clubs/new.html.erb 
     create app/views/clubs/_form.html.erb 
     create app/views/layouts/clubs.html.erb 
     invoke test_unit 
     create test/functional/clubs_controller_test.rb 

In alternativa si può provare active_admin gemma

ActiveAdmin - https://github.com/gregbell/active_admin

rails generate active_admin:resource [MyModelName] 

RailsAdmin è anche abbastanza https://github.com/sferik/rails_admin

È necessario specificare almeno 2 regole per il proprio modello, se non fa uso di buona convenzioni sulle rotaie. Esempio

class Article < ActiveRecord::Base 
    self.table_name "tbl_articles" 
    self.primary_key "art_id" 
end 
+0

active_admin genera controller, modelli e visualizzazione di quella particolare tabella [risorsa] con i metodi predefiniti? – neeraj

+0

Sì, eccetto i modelli, è necessario definire i modelli da soli con le associazioni, la logica, le regole di convalida necessarie, ecc ... – Fivell

+0

La tabella del database non è sufficiente per creare automaticamente il modello. – Fivell

0

Beh, questo va contro i principi. Il meglio che devi fare, se vuoi un bootstrap veloce per la tua applicazione, è replicare i modelli che hai sul tuo database e usare lo scaffolding. Ricorda che le rotaie usano un sacco di convenzioni e se decidi di non seguirle avrai molti problemi.

Controlla questo guide se hai bisogno di aiuto.

+0

La mia preoccupazione era solo sapere se è possibile, altrimenti la generazione di modelli, controllori e viste usando lo scaffolding va bene. non importa :) – neeraj

0

Questo è come si può fare -

Prova:

rails g scaffold myscaffold 

Questo genererà i file:

invoke active_record 
create db/migrate/20130124100759_create_myscaffolds.rb 
create app/models/myscaffold.rb 
invoke test_unit 
create  test/unit/myscaffold_test.rb 
create  test/fixtures/myscaffolds.yml 
route resources :myscaffolds 
invoke scaffold_controller 
create app/controllers/myscaffolds_controller.rb 
invoke erb 
create  app/views/myscaffolds 
create  app/views/myscaffolds/index.html.erb 
create  app/views/myscaffolds/edit.html.erb 
create  app/views/myscaffolds/show.html.erb 
create  app/views/myscaffolds/new.html.erb 
create  app/views/myscaffolds/_form.html.erb 
invoke test_unit 
create  test/functional/myscaffolds_controller_test.rb 
invoke helper 
create  app/helpers/myscaffolds_helper.rb 
invoke  test_unit 
create  test/unit/helpers/myscaffolds_helper_test.rb 
invoke assets 

invoke coffee 
create  app/assets/javascripts/myscaffolds.js.coffee 
invoke scss 
create  app/assets/stylesheets/myscaffolds.css.scss 
invoke scss 
identical app/assets/stylesheets/scaffolds.css.scss 
+0

Non penso che il comando precedente leggerà il mio database e controller di cassa, i modelli e le viste dello stesso usando lo scaffolding ... sarebbe? – neeraj

+0

perché no? C'è un file 'config/database.yml' e stai dando le opzioni del tuo database (corrente) laggiù. –

+0

Ad esempio, ho 10 tabelle nel mio database ed eseguo il comando precedente, quindi sei sicuro che la struttura MVC verrà creata per tutte e 10 le tabelle? – neeraj

Problemi correlati